Доки по разработке
This project is maintained by teniryte
readonly аргументы и параметрыПринципы
readonly, чтобы запретить мутации внутри функции.readonly коллекцию или объект приводит к ошибке компиляции.Пример
function logFirst(scores: readonly string[]) {
// scores[0] = 'X'; // Ошибка: массив доступен только для чтения
console.log(scores[0]);
}
interface Person {
name: string;
age: number;
}
function safeUpdate(person: Readonly<Person>) {
// person.name = 'New'; // Ошибка: свойство readonly
console.log(person.name);
}
Практика
readonly в публичных API, чтобы предотвратить нежелательные мутации извне.const mutable = [...scores];) перед модификацией.as const при передаче литералов, чтобы получить тип readonly автоматически.