Как объявить массив только для чтения в TypeScript?

Объявление массива только для чтения в TypeScript с помощью readonly[]

В TypeScript, для создания массива, который можно только читать и не изменять, используется модификатор readonly[]. Ниже приведен небольшой пример, который демонстрирует, как это работает:

let arr: readonly number[] = [1, 2, 3, 4];

В данном примере мы создаем массив чисел, который затем не сможем изменить. Это означает, что не сможет добавить новые элементы, удалить существующие или изменить их.

Попытка сделать что-то из перечисленного вызовет ошибку компиляции. Например, следующий код:

arr[0] = 10; // Ошибка: Index signature in type 'readonly number[]' only permits reading

В данном примере мы пытаемся изменить первый элемент массива arr, что вызывает ошибку, поскольку массив является только для чтения.

Массивы readonly в TypeScript существуют для обеспечения иммутабельности данных, что повышает безопасность кода при работе с массивами.

Обратите внимание, что маркер readonly применим только к самому массиву. Если массив содержит объекты, их свойства все еще могут быть изменены. Если вам нужно сделать и объекты, и их свойства неизменяемыми, вы должны использовать другие механизмы или библиотеки, например, immutable.js или immer.

Однако во многих случаях использование readonly[] является отличной промежуточной мерой для обеспечения базовой безопасности данных в вашем TypeScript-коде.

Related Questions

Считаете ли это полезным?