0

我正在将 inversify 用于使用 typescript 开发的平均堆栈应用程序。按照此网址的说明:https : //www.npmjs.com/package/inversify,我创建了 inversify.config.ts 文件并添加了与我的需求相关的代码。我的一个绑定收到以下错误:“错误:(39, 71) TS2349:无法调用类型缺少调用签名的表达式。类型'typeof ExampleRepository'没有兼容的调用签名。”。

inversify.config.ts:
myContainer.bind<IExampleRepository<IGroup>>(TYPES.IExampleRepository).to(ExampleRepository<IGroup>).whenTargetNamed("exampleRepository");

types.ts:
IExampleRepository: Symbol("ExampleRepository")

inversify.config.ts 条目将如何更改以适应这种需求?我在这里做错了什么?inversify 可以处理这种情况吗?

4

1 回答 1

0

我认为,如果您的界面是通用的,IExampleRepository<T>那么您ExampleRepository就不需要<IGroup>通用的。

import { Container, injectable } from "inversify";


const TYPES = {
    IExampleRepository: Symbol("IExampleRepository"),
};

class IGroup {

}

interface IExampleRepository<T> {
    group: T;
}

@injectable()
class ExampleRepository implements IExampleRepository<IGroup> {
    group: IGroup
}

const myContainer = new Container();
myContainer.bind<IExampleRepository<IGroup>>(TYPES.IExampleRepository).to(ExampleRepository).whenTargetNamed("exampleRepository");

`

请为 IExampleRepository 和 Examplerepository 提供更多示例代码。这可能有助于获得更好的答案。

于 2017-09-25T13:57:37.553 回答