快速入门
首先安装 inversify 和 reflect-metadata:
npm install inversify reflect-metadata
接下来,初始化你的第一个容器并添加一些绑定:
注意
确保在你的 tsconfig.json 中启用 Experimental decorators 和 Emit 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 装饰器允许 Katana 和 Ninja 类都用作容器绑定。@inject 装饰器提供有关 Ninja 依赖项的元数据,因此容器知道应该提供 Katana 作为 Ninja 构造函数的第一个参数。
绑定是通过 Container API 提供的。
通过这两个步骤,你就可以初始化你的第一个 ninja 了!