【发布时间】:2019-08-09 13:44:22
【问题描述】:
我正在尝试为 functions 分配类型。以下代码有效。
enum Enum {
Foo = "foo"
}
const functions = {
[Enum.Foo]: () => "Hello World!"
};
type FunctionMap = { [key: string]: (...args: any[]) => any };
type FunctionUnion<T extends FunctionMap> = ReturnType<T[keyof T]>;
type functions = FunctionUnion<typeof functions>;
但是,如果我更改FunctionMap 的密钥类型,
type FunctionMap = { [key in Enum]: (...args: any[]) => any };
它抛出
类型 'T[keyof T]' 不满足约束 '(...args: any[]) => any'。 类型 'FunctionMap[keyof T]' 不可分配给类型 '(...args: any[]) => any'.ts(2344)
为什么会抛出错误?
【问题讨论】:
标签: typescript