【发布时间】:2020-05-05 01:29:26
【问题描述】:
问题
我想创建一个根据给定参数提供不同功能的工厂。 这可以通过条件类型来解决。
type DispatchConditional<TPayload> = TPayload extends undefined
? () => void
: (payload: TPayload) => void;
DispatchCondition 类型可以通过接口进行检测。
interface ActionDispatcher<TPayload> {
dispatch: DispatchConditional<TPayload>;
}
如果我根据上面的定义建立一个工厂,如果使用Union-Type,它就会中断。
不知何故,payloadUnion() 定义的联合类型变成了Intersection-Type。
问题
我必须进行哪些调整才能为支持联合类型的方法 dispatch 生成类型定义?
游乐场
【问题讨论】:
标签: typescript conditional-types