Construtor TypeScript
Eu tentei criar uma classe com dois construtores e descobri queTypeScript não estão permitindo isso, mas permitem sobrecarga do construtor, bem, eu tentei e recebi um erro:
Compilação: a assinatura de sobrecarga não é compatível com a implementação da função.
Meu código:
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);
}
}
Eu tenho duas perguntas, a primeira, por que não consigo sobrecarregar o construtor, acho que estou fazendo algo errado.
Mas minha segunda pergunta, e mais interativa é, eu sei que construtor que obtém valores opcionais. Posso, (não com o código dentro do método!), Criar uma condição no meu construtor que possa verificar se um dos dois valores fornecidos deve existir, enquanto na inicialização da assinatura são opcionais, assim:
constructor(item?: IShoppingListItem, name?: string, amount?: number) {
//make a condition that item or name and amount must exist
this.name = name;
this.amount = amount;
}
Obrigado.