Tengo una matriz de la forma: [ 1, "message" ]
.
¿Cómo definiría esto en TypeScript?
typescript
dk123
fuente
fuente
Respuestas:
Use una
(string|number)[]
demostración tipo unión :Si está seguro de que siempre hay solo dos elementos
[number, string]
, puede declararlo como una tupla:fuente
Si lo está tratando como una tupla (consulte la sección 3.3.3 de las especificaciones del lenguaje ), entonces:
o
fuente
type NumberStringTuple = [number, string]
const W3COLORS: [[string, string, number, number]] = [ ["aliceblue", "#f0f8ff", 240, 248, 255], ... ];
Mi pelusa TS se quejaba de otras soluciones, por lo que la solución que me funcionaba era:
si solo hay un tipo, está bien usarlo:
fuente
Me decidí por el siguiente formato para escribir matrices que pueden tener elementos de varios tipos.
Array<ItemType1 | ItemType2 | ItemType3>
Esto funciona bien con pruebas y protectores de tipo. https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types
Este formato no funciona bien con las pruebas o los protectores de tipo:
(ItemType1 | ItemType2 | ItemType3)[]
fuente
Estoy usando esta versión:
Es un poco similar a las otras sugerencias, pero aún así es fácil y bastante bueno para recordar.
fuente