我有以下枚举(可能是const,也可以不是),我想导出一个联合类型,类似于我硬编码为MyNewOne的类型。如何处理最新的TS?
const enum FieldId {
Code = 'code',
Title = 'title',
Statuses = 'statuses',
}
type MyNewOne = 'code' | 'title' | 'statuses'
方法1
const enum FieldId {
Code = 'code',
Title = 'title',
Statuses = 'statuses',
}
type FieldIdValue = `${FieldId}` // "code" | "title" | "statuses"
let v:FieldIdValue = "code"
let vBad: FieldIdValue = "" //err
方法2
const enum FieldId {
Code = 'code',
Title = 'title',
Statuses = 'statuses',
}
type ToUnion<T extends Record<string, string | number>> = keyof {
[Prop in keyof T as `${T[Prop]}`]: Prop
}
type Result = ToUnion<typeof FieldId>