Проверяет знание TypeScript для создания типа пустого объекта, который запрещает добавление любых свойств.
В TypeScript тип {} означает любой ненулевой объект, но не запрещает добавление свойств. Чтобы создать тип, который всегда остаётся пустым, нужно явно указать, что любые возможные ключи имеют тип never.
Тип Record описывает объект, где любое строковое свойство должно иметь тип never. Поскольку never — это тип, который не может существовать, присвоить значение такому свойству невозможно.
type EmptyObject = Record<string, never>;
const obj: EmptyObject = {}; // ОК
obj.foo = 1; // Ошибка: Тип 'number' не может быть присвоен типу 'never'Можно использовать интерфейс с индексной сигнатурой, возвращающей never:
interface EmptyObject {
[key: string]: never;
}
const obj: EmptyObject = {};
obj.prop = 'value'; // ОшибкаТакой тип полезен, когда нужно гарантировать, что объект используется только как контейнер без данных, например, для передачи пустых параметров в функции или для обозначения отсутствия состояния.
Используйте Record<string, never> или интерфейс с индексной сигнатурой never, когда требуется строго пустой объект. Это обеспечивает безопасность типов и предотвращает случайное добавление свойств.
Уровень
Рейтинг:
4
Сложность:
4
Навыки
JavaScript
TypeScript
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию