首页 > 解决方案 > Inversify 容器在运行时未定义

问题描述

当我尝试执行 getNamed() 时,无法从 inversify 容器中获取实例。容器定义好,打字稿没有报错,可以看到导入的类型是“Container”;但是,在运行时容器中是未定义的。

我正在绑定 UserRepo 类,如下所示,并将容器导出为“Registry”

container.bind<Repository>('Repository').to(UserRepo).inSingletonScope().whenTargetNamed('User');
.
.
.
export { container as Registry };
import { Registry } from '../registry';
import { UserRepo } from '../repositories/userRepository';
const userRepo: UserRepo = Registry.getNamed('Repository', 'User'); // throws an error

我得到的错误是

uncaughtException: Cannot read property 'getNamed' of undefined
TypeError: Cannot read property 'getNamed' of undefined

我在我的应用程序的根目录中为不同的类执行相同的代码,它可以工作。如果有人能指出我在哪里犯了错误,那就太好了。

标签: javascriptnode.jstypescriptdependency-injectioninversifyjs

解决方案


推荐阅读