В 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-коде.