Відповіді:
Визначення масиву з декількома типами в 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"];
type NumberStringTuple = [number, string]
const W3COLORS: [[string, string, number, number]] = [ ["aliceblue", "#f0f8ff", 240, 248, 255], ... ];
Я зупинився на наступному форматі для введення масивів, які можуть мати елементи декількох типів.
Array<ItemType1 | ItemType2 | ItemType3>
Це добре працює з тестуванням та типовими щитками. https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types
Цей формат не працює добре з тестуванням або типом захисту:
(ItemType1 | ItemType2 | ItemType3)[]