Освоение ключевого слова «только для чтения» в TypeScript: руководство разработчика

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, что сделает процесс разработки более плавным и эффективным.

Помните, неизменность приводит к улучшению кода!