Что такое readonly в TypeScript
Если кратко - есть const - для создания констант в приложении. Объявили константу и один раз присвоили ей значение - все, больше изменить значение константы не получится - на то она и константа:
const abc: string = 'apple';
abc = 'melon';
… строка abc = ‘melon’ - будет с ошибкой - “Cannot assign to ‘abc’ because it is a constant”.
readonly - это аналог const, только - для полей объекта; объявили объект, указали у него свойство с readonly; один раз - присвоили этому полю значение - все, переприсвоить его уже не получится:
interface Person {
readonly name: string,
age: number
}
const person: Person = {
name: 'John',
age: 20
};
person.age = 21;
person.name = 'Mary';
… последняя строка - person.name = ‘Mary’ - в ней TypeScript выдаст ошибку - “Cannot assign to ‘name’ because it is a read-only property”.
Поле объекта с квалификатором readonly - неизменяемое свойство объекта.