В TypeScript свойства, доступные только для чтения, — это свойства, которым можно присвоить значение только один раз и которые нельзя изменить впоследствии. Они полезны, если вы хотите гарантировать, что определенные свойства остаются постоянными и не могут быть случайно изменены.
Существует несколько способов определения свойств, доступных только для чтения, в TypeScript:
- Использование модификатора
readonly. Вы можете использовать модификаторreadonly, чтобы объявить свойство доступным только для чтения. Например:
class Person {
readonly name: string;
constructor(name: string) {
this.name = name;
}
}
- Использование типа утилиты
Readonly: TypeScript предоставляет тип утилиты под названиемReadonly, который позволяет создавать версию типа объекта только для чтения. Например:
type Point = {
readonly x: number;
readonly y: number;
};
const p: Readonly<Point> = { x: 10, y: 20 };
- Использование интерфейса. Вы можете определить интерфейс со свойствами, доступными только для чтения. Объекты, реализующие этот интерфейс, должны будут иметь эти свойства только для чтения. Например:
interface Circle {
readonly radius: number;
}
const c: Circle = { radius: 5 };
- Использование подписей индексов TypeScript. Вы можете использовать сигнатуры индексов для определения свойств, доступных только для чтения. Этот подход позволяет вам иметь комбинацию изменяемых свойств и свойств, доступных только для чтения. Например:
type Config = {
readonly [key: string]: string;
};
При определении свойств, доступных только для чтения, имейте в виду, что им можно присвоить значение только во время инициализации или внутри конструктора. Любая попытка изменить их впоследствии приведет к ошибке компиляции.