Выбор ответа Junior Классы и интерфейсы обновлено
Модификатор в параметре конструктора
Вопрос
Что делает public x в параметре конструктора?
class Point {
constructor(public x: number) {}
}
const p = new Point(1);
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Объявляет поле класса x и присваивает ему значение аргумента. Это параметр-свойство (parameter property): модификатор public, private, protected или readonly в параметре конструктора объявляет поле и генерирует this.x = x.
Варианты ответа
- Создаёт статическое поле
Point.xсо значением аргумента - Только описывает тип параметра, поле нужно объявить отдельно
- Объявляет поле класса
xи присваивает ему значение аргументаправильный ответ - Делает параметр
xнеобязательным и публичным для вызова
Разбор
Это параметр-свойство (parameter property): модификатор public, private, protected или readonly в параметре конструктора объявляет поле и генерирует this.x = x. После new Point(1) значение доступно как p.x.
Отдельное объявление не нужно. Необязательность задаётся ?, а статические поля через static. Нюанс: это синтаксис с генерацией кода, его запрещает режим erasableSyntaxOnly.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.