Как можно объявить свойство только для чтения в классе TypeScript?

Использование ключевого слова 'readonly' в TypeScript для объявления свойства только для чтения

В языке программирования TypeScript существует ключевое слово 'readonly', которое используется для объявления свойств, доступных только для чтения. Вопрос указывал на разные подходы к реализации этого функционала, но правильным ответом является использование 'readonly'.

Отметка свойства как 'readonly' в TypeScript означает, что после инициализации его невозможно изменить. Оно становится доступно только для чтения.

class Person {
    readonly name: string;

    constructor(n: string) {
        this.name = n;
    }
}

let john = new Person("John");
console.log(john.name); // John
john.name = "Tom"; // Ошибка: Не удается назначить "Tom" для "name", так как это доступно только для чтения.

В этом примере у класса Person есть свойство name, проинициализированное в конструкторе. Попытка присвоить новое значение этому свойству приведет к ошибке компиляции.

Важно отметить, что ключевые слова 'const' и 'static' также применяются в TypeScript, но они имеют другие цели и смысл. 'const' используется для объявления констант, в то время как 'static' указывает на статическое свойство или метод класса.

Слово 'final', упомянутое в вопросе, отсутствует в TypeScript. Оно используется в других языках программирования, таких как Java или Kotlin, для создания свойств, которые нельзя переопределить или наследовать.

В целом, использование 'readonly' является прекрасным способом усиления статической типизации в TypeScript и добавления дополнительной гарантии, что определенные свойства не будут изменены после их инициализации.

Related Questions

Считаете ли это полезным?