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