2017-03-04 7 views
0

次のコードはngrxの例です。この辞書またはハッシュテーブルはTypescriptにありますか?

この宣言は何を行いますか?これはC#の辞書やハッシュテーブルと同等ですか?

let typeCache: { [label: string]: boolean } = {};

オリジナルコード:

let typeCache: { [label: string]: boolean } = {}; 

export function type<T>(label: T | ''): T { 
    if (typeCache[<string>label]) { 
    throw new Error(`Action type "${label}" is not unique"`); 
    } 

    typeCache[<string>label] = true; 

    return <T>label; 
} 

答えて

2

私はC#の同等性についてはわかりませんが、typescriptで意味するのはブール値のプロパティを持つ通常のjavascriptオブジェクトで、Indexable Typesと呼ばれています。
キーが唯一の文字列や数値することができ、これはコンパイルされません:いいえ、彼は `地図について質問されていない

type Indexable = { [label: string]: boolean }; 

let typeCache1: Indexable = { a: true, b: false }; 
let typeCache2: Indexable = { a: true, b: "string" }; // error: Type '{ a: true; b: "string"; }' is not assignable to type 'Indexable' 
0

これはJavaScriptで地図、簡単なキー/値のマップです。詳細はhereを参照してください。

+0

:値がどのように見えるだろうかの

let typeCache: { [label: Date]: boolean } = {}; // error: An index signature parameter type must be 'string' or 'number' 

例'、彼は通常のオブジェクトを使用しています。 –

関連する問題