TypeScript конструктор
я попытался создать класс с двумя конструкторами и выяснить, чтоМашинопись это не разрешено, но это допускает перегрузку конструктора, я попытался это сделать и получил ошибку:
Сборка: подпись перегрузки не совместима с реализацией функции.
Мой код:
interface IShoppingListItem {
name: string;
amount: number;
}
export class ShoppingListItem implements IShoppingListItem{
name: string;
amount: number;
constructor(item: IShoppingListItem);
constructor(name: string, amount: number) {
this.name = name;
this.amount = amount;
}
copy() {
//return new this.constructor(this);
}
}
У меня два вопроса, во-первых, почему я не могу перегрузить конструктор, я думаю, что я делаю что-то не так.
Но мой второй и более интерактивный вопрос: я знаю, что я конструктор, который получает необязательные значения. Могу ли я (не с кодом внутри метода!) Создать условие в моем конструкторе, которое может проверить, что одно из двух заданных значений должно существовать, в то время как в загрузке сигнатуры необязательно, например, так:
constructor(item?: IShoppingListItem, name?: string, amount?: number) {
//make a condition that item or name and amount must exist
this.name = name;
this.amount = amount;
}
Благодарю.