Ho un array nella forma: [ 1, "message" ].
Come lo definirei in TypeScript?
Ho un array nella forma: [ 1, "message" ].
Come lo definirei in TypeScript?
Risposte:
Definizione di array con più tipi in TypeScript
Utilizzare una (string|number)[]demo del tipo di unione :
const foo: (string|number)[] = [ 1, "message" ];
Ho una matrice del modulo: [1, "messaggio"].
Se sei sicuro che ci sono sempre solo due elementi [number, string], puoi dichiararlo come tupla:
const foo: [number, string] = [ 1, "message" ];
Se lo stai trattando come una tupla (vedi sezione 3.3.3 delle specifiche della lingua ), allora:
var t:[number, string] = [1, "message"]
o
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], ... ];
La mia lanterna TS si lamentava di altre soluzioni, quindi la soluzione che funzionava per me era:
item: Array<Type1 | Type2>
se esiste un solo tipo, va bene usare:
item: Type1[]
Ho optato per il seguente formato per digitare array che possono contenere elementi di più tipi.
Array<ItemType1 | ItemType2 | ItemType3>
Funziona bene con i test e le protezioni dei tipi. https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types
Questo formato non funziona bene con i test o le protezioni dei tipi:
(ItemType1 | ItemType2 | ItemType3)[]