Свойства только для чтения в интерфейсе в TypeScript

Свойства только для чтения задаются только один раз при создании объекта. В дальнейшем изменить их нельзя. Для объявления данных свойств используется ключевое слово readonly.

Возьмем интерфейс IFigure, созданный в предыдущем уроке. Но теперь зададим свойству width доступ только для чтения:

typescriptinterface IFigure {
  height: number;
  readonly width: number;
}

Давайте создадим объект rectangle:

typescriptlet rectangle: IFigure = {
  height: 200,
  width: 300
}

Изменим высоту:

typescriptrectangle.height = 150;

А теперь изменим ширину и увидим ошибку, так ширина объявлена неизменяемой:

typescriptrectangle.width = 400; // ошибка
Задание 1

Создайте интерфейс IUser, в котором свойство salary будет доступным только для чтения.