我正在使用inversify来创建使用typescript开发的平均堆栈应用程序。按照此URL: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条目以满足这种需求?我在这做错了什么?可以反转处理这种情况吗?
答案 0 :(得分: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提供更多示例代码。这可能有助于获得更好的答案。