typescript - Ce înseamnă tipul { [key: string]: boolean; }?
Am întâlnit recent un astfel de lucru, o declarație de funcție:
static required(control: AbstractControl): {
[key: string]: boolean;
};
Care este această valoare returnată? Un obiect cu un număr arbitrar de proprietăți, unde fiecare dintre ele este un boolean și are un nume, care pare să fie un șir de caractere? Presupun că este mai mult o întrebare despre TypeScript, dar doar în caz că cineva se întreabă de unde am găsit asta - este clasa Validators din Angular.
Răspuns #1
Aceasta este o structură cheie/valoare, numită semnături de index (sau cunoscută anterior ca tipuri indexabile) în TypeScript.
Cheia este un string și valoarea este un boolean. De exemplu:
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
Verifică acest exemplu pe Typescript Playground.
