2017-07-24 62 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) { ... } 
    ... 
} 
相關問題