首页 > 解决方案 > 运算符,如 »keyof«,但用于值

问题描述

有这个代码:

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与. 所以在这个例子中就是.AllEventNamesEventMapEventMapLoadEvent | BootEvent

标签: typescript

解决方案


你快到了,你只需要keyof KeyType像这样索引原始类型

type AllEventNames = EventMap[keyof EventMap];

在这里工作


推荐阅读