打字稿:是否可以引用类型别名

时间:2017-07-24 11:21:51

标签: javascript typescript

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

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

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

if(typecheck === SomeTypes.OPEN)

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

if(typecheck === 'OPEN')

1 个答案:

答案 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) { ... }
    ...
}