Определение массива с несколькими типами в TypeScript


У меня есть массив вида: [ 1, "message" ].

Как бы я определил это в TypeScript?

4 54

4 ответа:

определение массива с несколькими типами в TypeScript

используйте тип объединения (string|number)[] демо:

const foo: (string|number)[] = [ 1, "message" ];

у меня есть массив вида: [ 1, "сообщение" ].

если вы уверены, что всегда есть только два элемента [number, string] затем вы можете объявить его как кортеж:

const foo: [number, string] = [ 1, "message" ];

Если вы рассматриваете его как кортеж (см. раздел 3.3.3 язык спецификаций), то:

var t:[number, string] = [1, "message"]

или

interface NumberStringTuple extends Array<string|number>{0:number; 1:string}
var t:NumberStringTuple = [1, "message"];

мой TS lint жаловался на другие решения, поэтому решение, которое работало для меня, было:

item: Array<Type1 | Type2>

Если есть только один тип, это прекрасно, чтобы использовать:

item: Type1[]

использовать Array<any> и наслаждайтесь!