I tem uma matriz com a forma: [ 1, "message" ].
Como eu definiria isso no TypeScript?
I tem uma matriz com a forma: [ 1, "message" ].
Como eu definiria isso no TypeScript?
Respostas:
Definindo matriz com vários tipos no TypeScript
Use uma (string|number)[]demonstração do tipo união :
const foo: (string|number)[] = [ 1, "message" ];
Eu tenho uma matriz do formulário: [1, "message"].
Se você tiver certeza de que sempre existem apenas dois elementos [number, string], poderá declará-lo como uma tupla:
const foo: [number, string] = [ 1, "message" ];
Se você o estiver tratando como uma tupla (consulte a seção 3.3.3 da especificação do idioma ), então:
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], ... ];
Meu fiapo TS estava reclamando de outras soluções, então a solução que estava funcionando para mim era:
item: Array<Type1 | Type2>
se houver apenas um tipo, é bom usar:
item: Type1[]
Decidi no seguinte formato para digitar matrizes que podem ter itens de vários tipos.
Array<ItemType1 | ItemType2 | ItemType3>
Isso funciona bem com protetores de teste e tipo. https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types
Este formato não funciona bem com testes ou proteções de tipo:
(ItemType1 | ItemType2 | ItemType3)[]