web-dev-qa-db-fra.com

Tableau typographique de la déclaration de paires clé-valeur

Confus à propos de la déclaration suivante:

constructor(controls: {[key: string]: AbstractControl}, optionals?: {[key: string]: boolean}, validator?: ValidatorFn, asyncValidator?: AsyncValidatorFn)

Quel est le type des contrôles (premier paramètre)? S'agit-il d'un objet qui est un tableau de paires clé-valeur, où clé est une chaîne et où valeur est AbstractControl? Merci!

25
mishap

Oui, comme vous l'avez deviné, c'est un objet js avec key en tant que chaîne et AbstractControl en tant que valeurs.
Par exemple:

{
    "control1": new Control(),
    "control2": new Control()
}

Modifier

Vous pouvez déclarer une variable de ce type de deux manières:

let controls: { [key: string]: AbstractControl };

ou

interface ControlsMap {
    [key: string]: AbstractControl;
}

let controls: ControlsMap;

ou même mieux:

interface ControlsMap<T extends AbstractControl> {
    [key: string]: T;
}

let controls1: ControlsMap<AbstractControl>;
let controls2: ControlsMap<MyControl>;
45
Nitzan Tomer