digamos que tengo
type DataItems = { id: number; title: string; subItems?: Array<DataItemChild>; checked: boolean; isEdit:boolean; };Definí un objeto como
const myObj = {} as DataItems; cuando inspecciono myObj veo {} .
estaba esperando:
{ id: 0, title: '', subItems:[], checked: false, isEdit:false }Podría definir mi objeto como:
const myObj = { id : 0, title: '', subItems: [], checked: false, isEdit: false, } as DataItems;Pero me pregunto, ¿hay alguna manera de obtener esto como predeterminado sin necesidad de definirlo manualmente?
La forma más sencilla de hacerlo es crear una class , pero siempre debe usar new DataItems de datos para "obtener" los valores predeterminados.
type DataItemChild = any; class DataItems { id: number = 0; title: string = ''; subItems: DataItemChild[] = [] checked: boolean = false; isEdit:boolean = false; }; const myObj = new DataItems(); console.dir(myObj);No, no hay forma en mecanografiado que le dé un valor predeterminado sin inicializarlo. ¿Cómo sabría TypeScript que desea inicializar el número desde 0, la cadena debe estar vacía, el valor booleano debe estar vacío y así sucesivamente? Puedes hacer lo siguiente:
type DataItems = { id: number; title: string; subItems?: Array<DataItemChild>; checked: boolean; isEdit:boolean; }; const myObj : DataItems = { id: 0, title: '', subItems:[], checked: false, isEdit:false };