Use interfaces;) And this is a way to create an array with an empty type object Memberwith a set of properties. I don't know a precedent, at least I don't set properties for empty objects / arrays of models, but here we go :)
So first, your interfaces, which are:
export interface Member {
Id: string;
Name: string;
Cases: Case[];
}
export interface History {
Id: string;
CaseNumber: string;
}
export interface Case {
History: History[];
}
Then you create 3 functions to set the properties:
export function createMember(Id?:string,Name?:string, Cases?:Case[]): Member {
return {
Id,
Name,
Cases[createCase()]
}
}
export function createCase(History?:History[]): Case {
return {
History[createHistory()]
}
}
export function createHistory(Id?: string,CaseNumber?:string): History {
return {
Id,
CaseNumber
}
}
createMember, :
members = [createMember()];
PS, , Member -array, , , .