首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InversifyJS :无法使用接口绑定

InversifyJS :无法使用接口绑定
EN

Stack Overflow用户
提问于 2017-09-06 16:22:45
回答 2查看 2K关注 0票数 1

我正在尝试使用反版本的JS注入TypeScript应用程序的依赖项。我首先使用了https://github.com/inversify/InversifyJS页面的示例:

代码语言:javascript
复制
// file interfaces.ts
interface Warrior {
    fight(): string;
}

// file types.ts
const TYPES = {
    Warrior: Symbol("Warrior")
};
export { TYPES };

// file entities.ts
import { injectable, inject } from "inversify";
import "reflect-metadata";
import { Warrior } from "./interfaces"
import { TYPES } from "./types";

@injectable()
class WarriorImpl implements Warrior {
    public constructor(){
    }
    public fight() { return "I fight"; }
}
export { WarriorImpl };

// file inversify.config.ts
import { Container } from "inversify";
import TYPES from "./types";
import { Warrior } from "./interfaces";
import { WarriorImpl } from "./entities";
const myContainer = new Container();
myContainer.bind<Warrior>(TYPES.Warrior).to(WarriorImpl);
export { myContainer };

我应用了示例中提供的内容,但是Vscode和tsc在绑定行中失败,显示了此错误[ts] Untyped function calls may not accept type arguments. [ts] Cannot find name 'Warrior'.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-20 16:50:55

您的示例是干净和正确的,您所要做的就是升级您的package.json中的打字本版本。

代码语言:javascript
复制
"devDependencies": {
   "typescript": "3.9.3"
}
票数 1
EN

Stack Overflow用户

发布于 2017-09-06 16:30:58

  1. 您必须导出要导入它的接口: // interfaces.ts导出接口Warrior {string():string;}
  2. 您在inversify.config.ts中的导入应该是: 从“./type”导入{type};
  3. 确保您已经实际安装了库(npm install inversify)。错误Untyped function calls may not accept type arguments用于缺少类型信息。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46080130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档