Проверяет понимание конструкции as const в TypeScript для создания иммутабельных и строго типизированных литеральных типов.
Конструкция as const — это утверждение типа (type assertion) в TypeScript, которое указывает компилятору, что значение должно рассматриваться как константа с максимально точным литеральным типом. Она делает объекты и массивы глубоко неизменяемыми (readonly) и выводит типы как литералы, а не как общие строки или числа.
Без as const TypeScript выводит обобщённые типы. Например, строка 'hello' будет иметь тип string, а не 'hello'. С as const тип становится точным литералом. Это особенно полезно для:
// Без as const
const color = 'red'; // тип: string
// С as const
const color = 'red' as const; // тип: 'red'
// Массив
const fruits = ['apple', 'banana'] as const;
// тип: readonly ["apple", "banana"]
// Объект
const config = {
apiUrl: 'https://api.example.com',
timeout: 5000
} as const;
// тип: { readonly apiUrl: "https://api.example.com"; readonly timeout: 5000 }
В Redux часто используют as const для action creators, чтобы гарантировать, что тип action будет точным литералом, а не строкой. Это помогает TypeScript выводить правильные типы в редьюсерах.
const increment = () => ({ type: 'INCREMENT' } as const);
// тип: { readonly type: "INCREMENT" }
Используйте as const, когда вам нужна строгая типизация литералов, иммутабельность данных или точные типы для констант и action-объектов. Это улучшает безопасность типов и читаемость кода.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию