Как расширить класс (добавить новый атрибут к объекту класса) программно? Следующая ситуация: Предположим есть следующие классы (псевдокод TypeScript):class Project { id: number; name: string; stages: Stage[]; constructor() { this.stages = [] } } class Stage { id: number; name: string; jobs: Job[]; constructor() { this.jobs= [] } } class Job { id: number; name: string; } У нас есть список проектов (Project[]), к которому привязаны этапы работ (Stage[]), к которым привязаны конкретные работы (Job[]). Есть форма со списком проектов, можно провалиться в конкретный проект. На форме изменения проекта можно к проекту привязать (добавить) конкретные этапы и работы, отметив их чекбоксами. Но в классах Stage и Jobs нет атрибута checked: boolean. Как программно добавить атрибут? Как и где хранить объеты, у которых checked === true, чтобы потом put запросом обновить проект на бэкенде? Вот небольшой пример компоненты на Angular: @Component export class ProjectFormComponent implements OnInit { constructor (private projectService: ProjectService) { } projects: Projects[];
onInit() { this.projectService.getPorjects() .subscribe(projects => this.projects = projects); } OnEditProjectButtonClick(project) { this.projectService.getStageByProjectID(project) .subscribe(stages => { project.stages = stages (как то нужно добавить атрибут checked к объекту stages) project.stages.filter(stage => stage.checked) (но у нас нет свойства checked) } } } Шаблон: