web-dev-qa-db-fra.com

Interface pour tableau d'objets associatifs dans TypeScript

J'ai un objet comme ça:

var obj = {
    key1: "Apple",
    key2: true,
    key3: 123,
    .
    .
    .
    key{n}: ...
}

Ainsi, obj peut contenir n'importe quel nombre de clés nommées, mais les valeurs doivent toutes être soit string, bool ou number.

Comment déclarer le type de obj comme interface dans TypeScript? Puis-je déclarer un tableau associatif (ou Tuple variadique) d'un type d'union ou quelque chose de similaire?

25
prmph

Oui, vous pouvez utiliser une signature d'index :

interface MyType {
    [key: string]: string | boolean | number;
}

var obj: MyType = {
    key1: "Apple",
    key2: true,
    key3: 123
};
44
David Sherret