Перегрузка конструктора TypeScript с помощью пустого конструктора
Почему нельзя иметь отдельныйconstructor
определения вМашинопись?
Например, иметь два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;
}
ПочемуМашинопись отличается от распространенных языков, таких какC#
или жеPython
Вот?
Я ожидал бы, что это будет работать так.
constructor() {
}
constructor(id: number, name: string, surname: string, email: string) {
this.id = id;
this.name = name;
this.surname = surname;
this.email = email;
}
Таким образом, вы не можете передать ни один параметр или должны передать все параметры.