TypeScript предлагает богатый набор функций, которые расширяют возможности разработки и помогают обнаруживать ошибки во время компиляции. Одной из таких функций является ключевое слово «только для чтения», которое позволяет сделать свойства или переменные неизменяемыми, предотвращая случайные изменения и повышая безопасность кода. В этой статье блога мы рассмотрим различные методы использования ключевого слова «только для чтения» в TypeScript и приведем примеры кода, иллюстрирующие их использование.
Метод 1: свойства классов, доступные только для чтения
В TypeScript вы можете сделать свойства класса доступными только для чтения, используя модификатор «только для чтения». Если свойство помечено как доступное только для чтения, его значение нельзя изменить после его присвоения в конструкторе или внутри класса.
class Employee {
readonly id: number;
readonly name: string;
constructor(id: number, name: string) {
this.id = id;
this.name = name;
}
}
const emp = new Employee(1, "John");
emp.id = 2; // Error: Cannot assign to 'id' because it is a read-only property.
Метод 2: массивы и кортежи только для чтения
Вы также можете использовать модификатор «только для чтения» для создания массивов и кортежей только для чтения в TypeScript. После определения элементы массива или кортежа нельзя изменить.
const fruits: readonly string[] = ["apple", "banana", "orange"];
fruits.push("watermelon"); // Error: Property 'push' does not exist on type 'readonly string[]'.
const pair: readonly [number, string] = [1, "hello"];
pair[0] = 2; // Error: Index signature in type 'readonly [number, string]' only permits reading.
Метод 3: подписи индекса только для чтения
Если у вас есть объект с динамическими свойствами, вы можете использовать модификатор «только для чтения» с подписями индекса для обеспечения неизменяемости.
interface Config {
readonly [key: string]: string;
}
const config: Config = {
theme: "dark",
fontSize: "12px",
};
config.theme = "light"; // Error: Index signature in type 'Config' only permits reading.
Метод 4: Тип утилиты только для чтения
TypeScript предоставляет тип утилиты под названием «Только для чтения
interface Person {
name: string;
age: number;
}
const readOnlyPerson: Readonly<Person> = { name: "Alice", age: 25 };
readOnlyPerson.name = "Bob"; // Error: Cannot assign to 'name' because it is a read-only property.
Ключевое слово «только для чтения» в TypeScript — мощный инструмент для обеспечения неизменяемости и предотвращения случайных изменений переменных, свойств, массивов, кортежей и подписей индексов. Используя различные методы, обсуждаемые в этой статье, вы можете повысить безопасность и надежность своей кодовой базы TypeScript, обнаруживая потенциальные ошибки во время компиляции и улучшая общее качество кода.
Освоив ключевое слово «только для чтения», вы сможете писать более надежный и удобный в сопровождении код TypeScript, что сделает процесс разработки более плавным и эффективным.
Помните, неизменность приводит к улучшению кода!