Javascript InversifyJS@multiInject一个键值映射

Javascript InversifyJS@multiInject一个键值映射,javascript,typescript,dependency-injection,inversifyjs,Javascript,Typescript,Dependency Injection,Inversifyjs,我正试着创造一个忍者。假设我的忍者可以同时使用多种武器战斗。我可以用@multiInject()decorator实现它: @injectable() class Ninja implements Warrior { private _weapons: Weapon[]; public constructor( @multiInject(TYPES.Weapon) weapons: Weapon[], ) { this._weapons = we

我正试着创造一个忍者。假设我的忍者可以同时使用多种武器战斗。我可以用@multiInject()decorator实现它:

@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实现此功能