跳到主要内容
版本:7.x

快速入门

首先安装 inversifyreflect-metadata

npm install inversify reflect-metadata

接下来,初始化你的第一个容器并添加一些绑定:

注意

确保在你的 tsconfig.json 中启用 Experimental decoratorsEmit Decorator Metadata 选项以使用此库。

import { Container, inject, injectable } from 'inversify';

@injectable()
class Katana {
public readonly damage: number = 10;
}

@injectable()
class Ninja {
constructor(
@inject(Katana)
public readonly katana: Katana,
) {}
}

const container: Container = new Container();

container.bind(Ninja).toSelf();
container.bind(Katana).toSelf();

const ninja: Ninja = container.get(Ninja);

console.log(ninja.katana.damage);

@injectable 装饰器允许 KatanaNinja 类都用作容器绑定。@inject 装饰器提供有关 Ninja 依赖项的元数据,因此容器知道应该提供 Katana 作为 Ninja 构造函数的第一个参数。

绑定是通过 Container API 提供的。

通过这两个步骤,你就可以初始化你的第一个 ninja 了!