允许对象使用未知方法

时间:2020-01-27 09:06:46

标签: typescript .d.ts

我有一个对象,其中包含多个在编译时未知的方法名称。但是,方法的签名始终相同。我试图使用这样的索引类型:

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[]
}

但是,打字稿抱怨它不适合其他方法签名:

类型'{(fn:Function)类型的属性'each':void; (... args:any []):void; }'不能分配给字符串索引类型'(... arg0:any [])=>列表'。

我知道这是一件不寻常的事情,但是您怎么能完成打字稿中需要的工作呢?

1 个答案:

答案 0 :(得分:0)

interface List<T>{
[key: string] : ((...arg) => any) | (() => List<any>);
each: ((fn: Function) => void) | ((...args: any[]) => void);
toArray : () => T[];

}

这是你想要的吗?

相关问题