나는 일반 클래스를 가지고 있으며 일부 인수로 인스턴스를 생성해야합니다. 빈 생성자를 사용하여 인스턴스를 만드는 방법을 찾았지만 과부하를 시도하면 오류가 발생합니다. '오류 TypeError : rowObj가 생성자가 아닙니다.'typescript에서 인수를 사용하여 <T>의 인스턴스를 만드는 방법은 무엇입니까?
빈 생성자가있는 이전 코드는 다음과 같습니다. :
export class DataTableViewModel<TRow extends DataTableRowViewModel> {
public rowsViewModel: TRow[];
public totalItemsCount: number;
constructor(dateService: DateService, rows?: any[]) {
this.rowsViewModel = [];
if (rows) {
rows.forEach((row) => {
let obj = Object.getPrototypeOf(Object.create(row) as TRow);
this.rowsViewModel.push(obj);
});
}
}
}
는 여기에 내가 일하기 위해 노력하고 새로운 코드입니다 : 당신은 변수 rowObj
선언 한
export abstract class DataTableViewModel<TRow extends DataTableRowViewModel> {
public rowsViewModel: TRow[];
public totalItemsCount: number;
constructor(dateService: DateService, rows?: { new(): any }[]) {
this.rowsViewModel = [];
if (rows) {
let rowObj: { new(dateService: DateService, rows?: any): TRow };
rows.forEach((row) => {
let obj = new rowObj(dateService, row);
this.rowsViewModel.push(obj);
});
}
}
}
'DataTableRowViewModel'이란 무엇이며 해당 생성자의 서명은 무엇입니까? – jcalz
@jcalz 선언 된 생성자가 없으면 지금은 그냥 빈 클래스입니다. – Igor