typescript - Čo znamená typ { [key: string]: boolean; }?
Narazil som nedávno na takú vec, deklaráciu funkcie:
static required(control: AbstractControl): {
[key: string]: boolean;
};
Čo je táto návratová hodnota? Objekt s ľubovoľným počtom vlastností, pričom každá z nich je boolean a má meno, ktoré sa zdá byť reťazcom? Asi je to skôr otázka na TypeScript, ale pre prípad, že by niekoho zaujímalo, kde som to našiel - je to Angularová trieda Validators.
Odpoveď č. 1
Toto je štruktúra kľúč/hodnota, nazývaná indexové podpisy (alebo predtým známa ako indexovateľné typy) v TypeScripte.
Kľúč je string a hodnota je boolean. Napríklad:
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
Skontrolujte tento príklad na Typescript Playground.
