Выбор ответа Junior Классы и интерфейсы обновлено
Где можно присвоить readonly
Вопрос
Какая строка не скомпилируется?
class Order {
readonly id: number = 0; // A
constructor(id: number) {
this.id = id; // B
}
reset() {
this.id = 0; // C
}
}
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: C. Поле readonly можно присвоить при объявлении и внутри конструктора (A и B).
Варианты ответа
- Cправильный ответ
- Все компилируются
- A
- B
Разбор
Поле readonly можно присвоить при объявлении и внутри конструктора (A и B). В любом другом методе, как в C, присваивание запрещено.
Ограничение действует только при компиляции. В рантайме readonly поле обычное, и через as any его можно перезаписать.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.