【发布时间】:2020-05-12 15:17:52
【问题描述】:
我有一个对象,它有多个编译时未知的方法名称。但是,方法的签名始终是相同的。我尝试使用这样的索引类型:
interface List<T> extends Array<T> {
[key: string]: (...arg0: any[]) => List<T>
[key: string]: () => List<any>
each(fn: Function): void
each(...args: any[]): void
toArray(): T[]
}
但是,typescript 抱怨它无法将其他方法签名放入其中:
类型'{(fn:函数)的属性'每个':void; (...args: any[]): 无效; }' 不能分配给字符串索引类型 '(...arg0: any[]) => List'。
我知道这是一件不寻常的事情,但是你怎么能在 typescript 中做我需要的呢?
【问题讨论】:
标签: typescript .d.ts