typescript - Vad betyder typen { [key: string]: boolean; }?
Stött på en sådan sak nyligen, en funktionsdeklaration:
static required(control: AbstractControl): {
[key: string]: boolean;
};
Vad är detta returvärde? Ett objekt med ett godtyckligt antal egenskaper, där var och en av dem är en boolean och har ett namn, som verkar vara en sträng? Det är nog mer en Typescript-fråga antar jag, men för säkerhets skull om någon undrar var jag hittade det - det är Angulärs Validators-klass.
Svar #1
Detta är en nyckel/värde-struktur, kallad indexsignaturer (eller tidigare känd som indexerbara typer) i TypeScript.
Nyckeln är en string och värdet är en boolean. Till exempel:
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
Kolla på detta exempel på Typescript Playground.
