2016-09-26 13 views
0

TypeScript 2.0には、タグ付きユニオンが導入されました。私たちは、たとえば、インタフェースで判別プロパティを導入する必要があり、それらを使用するには、次のタグ付きユニオンとリテラルタイプを使用したタグ付け

let actionName: "ACTION" 

interface Action { 
    type: actionName <- error: cannot find name "actionName" 
} 

私があれば思ったんだけど:私は判別式などの文字列リテラルの型を使用することはできませんよしかし

interface Action { 
    type: "ACTION" 
} 

それは機能またはバグです。

答えて

0

文字列リテラルの定義が間違っています。 letは、型ではなく変数を定義します。それがなければならない:

type actionName = "ACTION" 

interface Action { 
    type: actionName; 
} 
0

溶液は、以下の表記法を使用することである。

const ACTION: "ACTION" = "ACTION" 

interface Action { 
    type: typeof ACTION 
} 
関連する問題