> Почему нельзя использовать typeof B как тип напрямую в TypeScript? (JavaScript, TypeScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: DigitalSail
Стек: JavaScript, TypeScript
> Пример ответа
В TypeScript typeof B в контексте типа работает не так, как в JavaScript. Когда вы пишете typeof B как тип, TypeScript воспринимает это как тип значения переменной B, а не как строку с именем типа. Проблема возникает, если B - это не переменная, а, например, тип или интерфейс. typeof в TypeScript работает только с значениями (переменными, свойствами объектов), но не с типами.
Пример:
TYPESCRIPTinterface User { name: string; }type B = User; // B - это тип, а не значениеlet x: typeof B; // Ошибка! B - это тип, а не значение
Чтобы получить тип из переменной, используйте typeof с реальным значением:
TYPESCRIPTconst obj = { name: 'Alice' };type ObjType = typeof obj; // { name: string }
Если нужно сослаться на существующий тип напрямую, просто используйте его имя: type C = B;.
> Похожие задачи по frontend
Зачем в setState передавать callback вместо значения
Как преобразовать объект arguments в массив в JavaScript
Как происходит билд в JavaScript/TypeScript проектах
В чем преимущества статической типизации TypeScript по сравнению с динамической типизацией JavaScript?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью