> Почему нельзя использовать typeof B как тип напрямую в TypeScript? (JavaScript, TypeScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: DigitalSail

Стек: JavaScript, TypeScript

> Пример ответа

В TypeScript typeof B в контексте типа работает не так, как в JavaScript. Когда вы пишете typeof B как тип, TypeScript воспринимает это как тип значения переменной B, а не как строку с именем типа. Проблема возникает, если B - это не переменная, а, например, тип или интерфейс. typeof в TypeScript работает только с значениями (переменными, свойствами объектов), но не с типами.

Пример:

TYPESCRIPT
interface User { name: string; }
type B = User; // B - это тип, а не значение
let x: typeof B; // Ошибка! B - это тип, а не значение

Чтобы получить тип из переменной, используйте typeof с реальным значением:

TYPESCRIPT
const obj = { name: 'Alice' };
type ObjType = typeof obj; // { name: string }

Если нужно сослаться на существующий тип напрямую, просто используйте его имя: type C = B;.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью