所以,我得到了:
interface Foo {
type: FooType;
}
在这里最好用作FooType
:
输入别名?
type FooType = 'BAR' | 'BAZ';
还是基于字符串的枚举?
enum FooType {
BAR = 'BAR',
BAZ = 'BAZ'
}
两者的利弊是什么?
答案 0 :(得分:1)
您的第一个示例(您称为“类型别名”)实际上称为string literal type。
我认为这取决于个人喜好。
枚举
const enum
来避免这种情况)字符串文字
string
类型的值时,通常必须先声明为any
,然后再声明为值let x: string
let y: FooType
y = x as any as FooType
(编辑:嗯,看起来像这样)
我以前更喜欢枚举,但是最近我一直倾向于字符串文字类型。再次,我认为这全都取决于个人喜好。