У меня есть объект с несколькими именами методов, которые не известны во время компиляции. Однако подпись метода всегда одна и та же. Я попытался использовать индексный тип, подобный этому:
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[]
}
Однако машинописный текст жалуется, что он не может вписать сигнатуры других методов в это:
Свойство 'each' типа ' {(fn: Function): void; (... args: any []): void; } 'нельзя назначить строковому индексу типа' (... arg0: any []) => List '.
Я знаю, что это необычно, но как вы можете делать то, что мне нужно в машинопись