快速开始
首先安装 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 提供。
完成这两个步骤后,您就可以初始化您的第一个忍者了!