Перегрузка конструктора 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;
}

Таким образом, вы не можете передать ни один параметр или должны передать все параметры.

Ответы на вопрос(4)

Ваш ответ на вопрос