Код: Выделить всё
// TToSignal.ts
import { WritableSignal } from '@angular/core';
export type TToSignal = {
[k in keyof T]: WritableSignal;
};
< /code>
// CDataItem.ts
import { IDataItem } from '../interfaces';
import { TToSignal } from '../types';
export class CDataItem implements TToSignal {
prop1: signal('');
prop2: signal(0);
constructor(init: Partial) {
if (!init) return;
if (init.prop1) this.prop1.set(init.prop1);
if (init.prop2) this.prop2.set(init.prop2);
}
}
< /code>
// CDataProfile.ts
import { IDataProfile } from '../interfaces';
import { TToSignal } from '../types';
export class CDataProfile implements TToSignal {
prop1: signal('');
prop2: signal(0);
constructor(init: Partial) {
if (!init) return;
if (init.prop1) this.prop1.set(init.prop1);
if (init.prop2) this.prop2.set(init.prop2);
}
}
< /code>
// CData.ts
import { CDataProfile, CDataItem } from '../classes';
import { IData } from '../interfaces';
import { TField, TToSignal } from '../types';
export class CData implements TToSignal {
name: signal('');
items: signal([]);
profile: signal(new CDataProfile());
constructor(init: Partial) {
if (!init) return;
if (init.name) this.name.set(init.name);
if (init.items) this.items.set(init.items);
if (init.profile) this.profile.set(init.profile);
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... and-arrays