Typescript允许我们使用字符串文字作为类型。问题是我可以用点符号来引用它们吗?例如,我有一个这样的类型
export type SomeTypes = 'OPEN' | 'CLOSED' | 'PROGRESSED' | 'DONE';
我能以某种方式使用它吗?
if(typecheck === SomeTypes.OPEN)
现在我必须写出字符串文字,这不完全是类型安全方式。看起来像这样
if(typecheck === 'OPEN')
答案 0 :(得分:1)
查看TypeScript 2.4 - 它支持String Enumerations。
除此之外(因为2.4引入了重大变化),更具表现力的“解决方法”如下 - 将常量定义为变量,然后在常量上提供别名:
export const SOME_TYPE_OPEN = 'OPEN';
export const SOME_TYPE_CLOSED = 'CLOSED';
...
export type SomeType = SOME_TYPE_OPEN | SOME_TYPE_CLOSED | ...;
然后你可以使用:
function getIt(value: SomeType) {
if (SOME_TYPE_OPEN === value) { ... }
...
}