1. ホーム
  2. typescript

[解決済み] TypeScriptのハッシュマップ/辞書インターフェイス

2022-03-05 13:15:43

質問

私はTypeScriptを使うのが初めてで、ハッシュマップ/辞書のインターフェイスを実装しようとしています。今のところ、私は

export interface IHash {
    [details: string] : string;
} 

この構文の意味を正確に理解するのに苦労しています。もし、私が var x : IHash = {}; どのようにデータを追加/アクセスするのでしょうか?

どのように解決するのですか?

通常のjsオブジェクトと同様です。

let myhash: IHash = {};   

myhash["somestring"] = "value"; //set

let value = myhash["somestring"]; //get

でやっていることは2つあります。 [indexer: string] : string

  • TypeScriptに、オブジェクトが文字列ベースの任意のキーを持つことができることを伝える。
  • すべてのキー項目に対して、値は文字列型でなければならない (MUST)。

明示的に型付けされたフィールドを持つ一般的なディクショナリーを作るには [key: string]: any;

age は、必ず number 一方 name は文字列でなければならない - 両方とも必須。暗黙のフィールドは、どのような型の値であっても構いません。

代替案として Map クラスがあります。

let map = new Map<object, string>(); 

let key = new Object();

map.set(key, "value");
map.get(key); // return "value"

これにより、任意のオブジェクト インスタンス (数字や文字列だけでなく)をキーとします。

ただし、比較的新しいものなので、古いシステムをターゲットにしている場合はポリフィルが必要かもしれません。