Встречается на собеседованиях • сегодня

Можно ли создать иммутабельный объект в TypeScript

Да, можно создать иммутабельный объект в TypeScript несколькими способами:

  1. Object.freeze() - делает объект неизменяемым (поверхностно):
typescript
const obj = Object.freeze({ a: 1, b: 2 });
obj.a = 3; // Ошибка в strict mode
  1. Readonly тип - делает свойства доступными только для чтения:
typescript
type Immutable = Readonly<{ a: number; b: string }>;
const obj: Immutable = { a: 1, b: 'test' };
obj.a = 2; // Ошибка компиляции
  1. as const утверждение - делает объект полностью неизменяемым:
typescript
const obj = { a: 1, b: 'test' } as const;
obj.a = 2; // Ошибка компиляции

Важно: Object.freeze() работает только на первом уровне вложенности. Для глубокой иммутабельности можно использовать библиотеки типа Immer или писать рекурсивные функции-обёртки.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы