оператор как »keyof«, но для значений - PullRequest
1 голос
/ 12 июля 2020

Вот этот код:

type LoadEvents = "load-start" | "load-end";
type BootEvents = "boot-start" | "boot-end";

interface EventObject {}
interface LoadEvent extends EventObject {}
interface BootEvent extends EventObject {}

type EventMap = { [key in LoadEvents]: LoadEvent } &
                { [key in BootEvents]: BootEvent }

type AllEventNames = keyof EventMap;

Вопрос:

Что я могу сделать, чтобы получить AllEventTypes, который по сути совпадает с AllEventNames, но вместо этого список всех ключей в EventMap, список всех значений в EventMap. В этом примере это будет LoadEvent | BootEvent.

1 Ответ

3 голосов
/ 12 июля 2020

Почти готово, вам просто нужно проиндексировать исходный тип с помощью keyof KeyType, поэтому здесь работает что-то вроде

type AllEventNames = EventMap[keyof EventMap];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...