#javascript #typescript #dependency-injection #inversifyjs
#javascript #машинописный текст #внедрение зависимости #inversifyjs
Вопрос:
Я пытаюсь создать Ninja с помощью InversifyJS. Допустим, мой ниндзя может сражаться несколькими видами оружия одновременно. Я могу реализовать это с помощью декоратора @multiInject():
@injectable()
class Ninja implements Warrior {
private _weapons: Weapon[];
public constructor(
@multiInject(TYPES.Weapon) weapons: Weapon[],
) {
this._weapons = weapons;
}
public fight() {
this._weapons.forEach( weapon => weapon.fight());
}
}
container.bind(TYPES.Weapon).to(Katana);
container.bind(TYPES.Weapon).to(Shuriken);
Ничего страшного, если я сохраню свое оружие в виде массива. Но что, если я хочу сохранить их как пару ключ-значение?
private _weapons: { [weaponId: string]: Weapon };
...
public fight() {
this._weapons["katana"].fight();
this._weapons["shuriken"].fight();
}
Как я могу реализовать это с помощью Inversify?