因此,我得到了:
interface Foo {
type: FooType;
}
哪一个最好用作
FooType
:输入别名吗?
type FooType = 'BAR' | 'BAZ';
还是基于字符串的枚举?
enum FooType {
BAR = 'BAR',
BAZ = 'BAZ'
}
两者的优缺点是什么?
最佳答案
您的第一个示例(称为“类型别名”)实际上称为string literal type。
我认为这取决于个人喜好。
枚举
const enum
避免这种情况)字符串文字
string
类型值时使用,通常必须先声明为any
,然后再声明为值let x: string
let y: FooType
y = x as any as FooType
(编辑:嗯,看起来他们已经解决了这个问题)我曾经更喜欢枚举,但是最近我一直倾向于字符串文字类型。同样,我认为这全都归因于个人喜好。