缺少@inject注释,在使用扩展类进行反转时不会丢失

时间:2017-06-01 07:58:48

标签: node.js typescript mongoose inversifyjs

我遇到一个似乎有点难以投入标题的问题,这就是为什么你有这个标题的野兽。

我收到错误消息:Error: Missing required @inject or @multiInject annotation in: argument 0 in class SceneRepository. 这看起来很简单,我应该在我的第一个参数中添加一个@inject注释。这是我的构造函数:

export class SceneRepository extends BaseRepository<IScene> {
  constructor(@inject(SceneSchema) private sceneSchema: SceneSchema) {
    super(sceneSchema.schema);
  }
}

为了完成,这就是我的BaseRepository的样子:

export class BaseRepository<T extends Document> implements IWrite<T>, IRead<T>{
  constructor(private _model: Model<Document>) {

  }
  ...
}

Model<Document>来自第三方图书馆(猫鼬)。

我不知道我在这里做错了什么,所以如果你能按正确的方向推动我,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,在我的情况下,我使用属性注入来代替构造函数注入,从而避免了该错误,并使注入工作正常。

export class SceneRepository extends BaseRepository<IScene> {
    @inject(SceneSchema)
    private sceneSchema: SceneSchema;
    constructor() {
        super(this.sceneSchema.schema);
      }
    }

希望这会有所帮助。