@nskaskyou

Как дописать typeof всем типам из юнион типа?

Добрый день.
как преобразовать type1, чтобы получить type2?

type type1 = Vasya | Petya,
type type2 = typeof Vasya | typeof Petya,


что то как то сложно оказалось
Спасибо :)
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 1
@disappearedstar
Фронтенд-разработчик
typeof можно применять только к тем сущностям, которые имеют value-контекст. А тип, наоборот, можно сконструировать из тех сущностей, которые имеют type-контекст. Полагаю, Vasya и Petya —это енумы или классы (сущности, которые в TypeScript имеют и type-, и value-контексты). Но в таком случае тип type1 при объявлении потерял все value-контексты своих составляющих, и преобразовать его в в type2 не получится.

Но можно сделать так:
const type1 = { // используем value-контексты Васи и Пети
  Vasya,
  Petya,
}
type type2 = (typeof type1)[keyof typeof type1] // выводится в typeof Vasya | typeof Petya
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы