1. ホーム
  2. typescript

[解決済み] 型{ [key: string]: boolean; }は何を意味するのでしょうか?

2023-03-06 04:07:20

質問

最近、関数宣言のようなものに遭遇しました。

static required(control: AbstractControl): {
  [key: string]: boolean;
};

この戻り値は何でしょうか?任意の数のプロパティを持つオブジェクトで、それぞれがブール値で、文字列と思われる名前を持っているのでしょうか?これはどちらかというとtypescriptの質問だと思いますが、私がこれをどこで見つけたか不思議に思う人がいるかもしれないので念のため - それはAngularの Validators クラスです。

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

これは、キー/バリュー構造で、名前は インデックス・シグネチャ (または以前は 索引可能な型 ) をタイプスクリプトで使用することができます。

キーは string で、値は boolean . 例えば

let map : { [key: string]: boolean} = {};
map["foo"] = true;
map["bar"] = false;
map.foo = true;
map["foobar"] = "foo"; // Throws exception
map[1] = true; // Curiously doesn't throws exception

チェック このサンプルをTypescript Playgroundで確認してください。