1. ホーム
  2. typescript

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

2022-02-06 13:18:50

質問

最近、こんなことに遭遇しました、関数宣言。

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 で公開されています。