TypeScript readonly — только для чтения

В этом руководстве вы узнаете, как использовать модификатор доступа TypeScript readonly — только для чтения, чтобы пометить свойства класса как неизменяемые свойства.

TypeScript предоставляет модификатор только для чтения, который позволяет помечать свойства класса как неизменяемые. Присвоение свойству только для чтения может произойти только в одном из двух мест:

  • В декларации свойств.
  • В конструкторе того же класса.

Чтобы пометить свойство как неизменное, используйте ключевое слово readonly. Ниже показано, как объявить свойство только для чтения в классе Person :

class Person {
    readonly birthDate: Date;

    constructor(birthDate: Date) {
        this.birthDate = birthDate;
    }
}

В этом примере свойство birthdate — это свойство только для чтения, которое инициализируется в конструкторе класса Person.

Следующие попытки переназначить свойство birthDate приводят к ошибке:

let person = new Person(new Date(1990, 12, 25));
person.birthDate = new Date(1991, 12, 25); // Compile error

Как и другие модификаторы доступа в TypeScript, вы можете объединить объявление и инициализацию свойства только для чтения в конструкторе следующим образом:

class Person {
    constructor(readonly birthDate: Date) {
        this.birthDate = birthDate;
    }
}

Сравнение readonly и const

Ниже показаны различия между readonly и const:

readonlyconst
Использовать дляСвойства классаПеременные
ИнициализацияВ объявлении или в конструкторе того же классаВ декларации

Заключение

  • Используйте модификатор доступа только для чтения в TypeScript, чтобы пометить свойство класса как неизменяемое.
  • Свойство readonly должно быть инициализировано как часть объявления или в конструкторе того же класса.
Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript