Почему не разрешено иметь отдельные определения constructor
в TypeScript?
Чтобы иметь, например, два constructors
, мне нужно написать свой код следующим образом.
constructor(id: number)
constructor(id: number, name?: string, surname?: string, email?: string) {
this.id = id;
this.name = name;
this.surname = surname;
this.email = email;
}
Таким образом, мне нужно поместить ?
после того, что я не хочу требовать.
Почему я не могу написать это так?
constructor(id: number) {
this.id = id;
}
constructor(id: number, name: string, surname: string, email: string) {
this.id = id;
this.name = name;
this.surname = surname;
this.email = email;
}
Так что для каждого конструктора все параметры обязательны.
Кроме того, мне нужно иметь пустой конструктор. Это становится еще более странным, так как мне нужно отметить каждый параметр с помощью ?
.
constructor()
constructor(id?: number, name?: string, surname?: string, email?: string) {
this.id = id;
this.name = name;
this.surname = surname;
this.email = email;
}
Почему TypeScript отличается от обычных языков, таких как C#
или Python
здесь?
Я ожидаю, что он будет работать следующим образом.
constructor() {
}
constructor(id: number, name: string, surname: string, email: string) {
this.id = id;
this.name = name;
this.surname = surname;
this.email = email;
}
Таким образом, вы не можете передавать ни один параметр или не передавать параметры.