Typescript array of key value pairs declaration Typescript array of key value pairs declaration arrays arrays

Typescript array of key value pairs declaration


Yes, like you guessed, it's a js object with key as string and AbstractControl as values.
For example:

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

Edit

You can declare a variable to be of this type in two ways:

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

or

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

or even better:

interface ControlsMap<T extends AbstractControl> {    [key: string]: T;}let controls1: ControlsMap<AbstractControl>;let controls2: ControlsMap<MyControl>;


Aside of the above answer, you can also use the Record<Keys,Type> utility type for this situation.

type ControlsMap = Record<string, AbstractControl>;const mapping: ControlsMap = {  keyA: new Control(),  keyB: new Control(),};

Or with generics:

type ControlsMap<T extends AbstractControl> = Record<string, T>;