2017-07-24 64 views
0

Typescript允许我们使用字符串文字作为类型。问题是我可以用点符号来引用它们吗?例如我有这样的一个类型Typescript:是否可以引用类型别名

export type SomeTypes = 'OPEN' | 'CLOSED' | 'PROGRESSED' | 'DONE'; 

我可以以某种方式使用它吗?

if(typecheck === SomeTypes.OPEN) 

现在我必须写出不完全是类型安全方式的字符串文字。它看起来像这样

if(typecheck === 'OPEN') 
+0

不,字符串文字只是字符串,没有包装它们的对象。只有编译器根据为字符串文字指定的特定值检查值。 –

回答

1

看看TypeScript 2.4 - 它支持字符串枚举。

除了(因为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) { ... } 
    ... 
} 
相关问题