所以,我有:
interface Foo {
type: FooType;
}
在这里作为FooType
使用哪一个更好:
类型别名?
type FooType = 'BAR' | 'BAZ';
使用字符串的枚举还是强类型枚举?
enum FooType {
BAR = 'BAR',
BAZ = 'BAZ'
}
这两者的优缺点是什么?
所以,我有:
interface Foo {
type: FooType;
}
在这里作为FooType
使用哪一个更好:
类型别名?
type FooType = 'BAR' | 'BAZ';
使用字符串的枚举还是强类型枚举?
enum FooType {
BAR = 'BAR',
BAZ = 'BAZ'
}
这两者的优缺点是什么?
你的第一个例子(你称之为“类型别名”)实际上被称为字符串字面量类型。
我认为这是个人偏好的问题。
枚举
const enum
避免这种情况)字符串字面量
string
类型的值时,通常需要先断言为any
再断言为您的值let x: string
let y: FooType
y = x as any as FooType
(编辑: 嗯,看起来他们已经修复了这个问题)
我过去更喜欢使用枚举,但最近我倾向于使用字符串字面类型。我认为这一切都取决于个人偏好。