Typescript:不可分配给类型的参数

Typescript:不可分配给类型的参数,typescript,Typescript,我有一个抽象类: export abstract class BaseController { private path: string; private router: Router; constructor() {} private initializeRoutes() {} public getPath = (): string => { return this.path; }; public getRouter = (): Router =>

我有一个抽象类:

export abstract class BaseController {
  private path: string;
  private router: Router;
  constructor() {}
  private initializeRoutes() {}
  public getPath = (): string => {
    return this.path;
  };
  public getRouter = (): Router => {
    return this.router;
  };
}
和类别:

export class Controller {
  private controllers: BaseController[];
  constructor(controllers: BaseController[]) {
    this.controllers = controllers;
  }
  public registerControllersInContainer = () => {
    for (let controller of this.controllers) {
      container.registerSingleton<BaseController>('Controllers', controller);
    }
  };
}
导出类控制器{
专用控制器:BaseController[];
构造函数(控制器:BaseController[]){
this.controllers=控制器;
}
公共注册表控制器容器=()=>{
for(让此.controllers的控制器){
container.registerSingleton('控制器',控制器);
}
};
}
用法:

类测试扩展BaseController{}

const controllerManager=新控制器([new test()])

但是,当我在容器中注册类时使用typescript时,我遇到以下错误:

Argument of type 'BaseController' is not assignable to parameter of type 'InjectionToken<BaseController>'.
  Type 'BaseController' is missing the following properties from type 'DelayedConstructor<BaseController>': wrap, reflectMethods, createProxy, createHandlerts(2345)
“BaseController”类型的参数不可分配给“InjectionToken”类型的参数。 类型“BaseController”缺少类型“DelayedConstructor”中的以下属性:wrap、reflectMethods、createProxy、createHandlerts(2345) 我相信这就是为什么我需要确保我的控制器不是一个类:

  public registerControllersInContainer = () => {
    for (let controller of this.controllers) {
      container.registerSingleton<BaseController>('Controllers', controller);
    }
  };
public registerControllersInContainer=()=>{
for(让此.controllers的控制器){
container.registerSingleton('控制器',控制器);
}
};

我不明白该如何解决这个问题。

我们缺少你问题的背景。在纯类型脚本中,此代码是正确的。您使用的框架或库是什么?带有typescript的NodeJ请在typescript游乐场或任何其他沙箱中共享最小的可复制示例