J'ai un tableau de la forme: [ 1, "message" ].
Comment définirais-je cela dans TypeScript?
J'ai un tableau de la forme: [ 1, "message" ].
Comment définirais-je cela dans TypeScript?
Réponses:
Définition d'un tableau avec plusieurs types dans TypeScript
Utilisez une (string|number)[]démonstration de type union :
const foo: (string|number)[] = [ 1, "message" ];
J'ai un tableau de la forme: [1, "message"].
Si vous êtes sûr qu'il n'y a toujours que deux éléments, [number, string]vous pouvez le déclarer comme un tuple:
const foo: [number, string] = [ 1, "message" ];
Si vous le traitez comme un tuple (voir la section 3.3.3 de la spécification du langage ), alors:
var t:[number, string] = [1, "message"]
ou
interface NumberStringTuple extends Array<string|number>{0:number; 1:string}
var t:NumberStringTuple = [1, "message"];
type NumberStringTuple = [number, string]
const W3COLORS: [[string, string, number, number]] = [ ["aliceblue", "#f0f8ff", 240, 248, 255], ... ];
Ma charpie TS se plaignait d'autres solutions, donc la solution qui fonctionnait pour moi était:
item: Array<Type1 | Type2>
s'il n'y a qu'un seul type, c'est bien d'utiliser:
item: Type1[]
J'ai choisi le format suivant pour taper des tableaux pouvant contenir des éléments de plusieurs types.
Array<ItemType1 | ItemType2 | ItemType3>
Cela fonctionne bien avec les tests et les protections de type. https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types
Ce format ne fonctionne pas bien avec les tests ou les protections de type:
(ItemType1 | ItemType2 | ItemType3)[]