Как повторно использовать сигнатуру перегруженного метода в другом классе?

#typescript #types

Вопрос:

У меня есть интерфейс с перегруженным методом:

 interface GnosisSafeInterface {  
  encodeFunctionData(functionFragment: "NAME", values?: undefined): string;
  encodeFunctionData(functionFragment: "VERSION", values?: undefined): string;
  ...
  encodeFunctionData(
    functionFragment: "addOwnerWithThreshold",
    values: [string, BigNumberish]
  ): string;
}
 

Я хочу добавить метод оболочки в другой класс, подобный этому, так encode что = encodeFunctionData

 class GnosisSafeEthersV5Contract {
  constructor(public contract: GnosisSafeInterface) {}

  encode: GnosisSafeInterface['encodeFunctionData'] = (methodName, params) => {
    return this.contract.encodeFunctionData(methodName, params)
  }
}
 

Как я могу этого достичь? То, как я писал, было ошибочным и недействительным. Вот типографская площадка для воспроизведения: TS Playground

Спасибо!