TypeScript: Утверждение исправляет этот контекст для набора импортированных методов

#typescript

Вопрос:

У меня есть класс со многими методами (~200), которые для удаления я переместил в объект в классе, а фактические определения методов в ряд разных файлов. Чтобы поддерживать правильный этот контекст, я импортирую все эти методы и связываю их соответствующим образом, однако TypeScript жалуется.

 The 'this' context of type 'typeof import("./methods")' is not assignable to method's 'this' of type 'Main'.
  Type 'typeof import("/methods")' is missing the following properties from type 'Main': name, methods
 

Пример:

 // index.ts
import * as methods from './methods';

export default class Main {
  constructor(name: string) {
    this.name = name;
  }

  name: string;

  methods = (Object.keys(methods) as Array<keyof typeof methods>).reduce((acc, k) => {
    acc[k] = methods[k].bind(this);
    return acc;
  }, {} as typeof methods);
}

const inst = new Main('Anga');
inst.methods.DoSomething();
 
 // methods.ts
import Main from '.';

export function DoSomething(this: Main) {
  console.log(this.name);
}

export function DoSomethingElse(this: Main, input: string) {
  console.log(`${this.name}: ${input}`);
}

 

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