¿Cómo puedo definir un arreglo de objetos usando Typescript?
¿Alguien puede darme algún consejo? Tengo un arreglo de objetos aquí:
contentOrderBy = [
{ id: 0, name: 'CId', key: 'contentId' },
{ id: 1, name: 'Modified By', key: 'modifiedBy' },
{ id: 2, name: 'Modified Date', key: 'modified' },
{ id: 3, name: 'Status', key: 'contentStatusId' },
];
Lo que me gustaría hacer es encontrar cómo puedo definir esto en Typescript.
Respuesta #1
No estoy completamente seguro de lo que quieres decir con:
Lo que me gustaría hacer es encontrar cómo puedo definir esto en Typescript.
Pero una opción es introducir la interface y declarar la variable como un arreglo de tales objetos:
interface IMyEntity {
id: number;
name: string;
key: string;
}
var contentOrderBy = [
{ id: 0, name: 'CId', key: 'contentId' },
{ id: 1, name: 'Modified By', key: 'modifiedBy' },
{ id: 2, name: 'Modified Date', key: 'modified' },
{ id: 3, name: 'Status', key: 'contentStatusId' },
];
// finally here we have declaration of the array
// which contains the items of specified type/interface
// and we can later work with them "fully-typed"
var myContent : IMyEntity[] = contentOrderBy;
alert(myContent[0].name);
Verifícalo en acción aquí
Respuesta #2
Para declarar el arreglo, las siguientes dos sintaxis son válidas, si estás buscando una opción que evite el uso de una interfaz:
contentOrderBy: { id: number, name: string, key: string }[];
o
contentOrderBy: Array<{ id: number, name: string, key: string }>;
Luego llena el arreglo como en la pregunta del OP.
Desde que encontré esta pregunta mientras buscaba la manera correcta de definir un arreglo dentro del objeto, también agregaré ese ejemplo. En este ejemplo, la propiedad 'key' del objeto es un arreglo de cadenas.
contentOrderBy: { id: number, name: string, key: string[] }[];
o
contentOrderBy: Array<{ id: number, name: string, key: Array<string> }>;
