Я использую Inversify Js для DI в моем проекте машинописи. При использовании декоратора @multiInject я получаю сообщение об ошибке «Неоднозначное совпадение найдено для serviceIdentifier». Я следую этому примеру (https://github.com/inversify/InversifyJS/blob/master/wiki/multi_injection.md). Почему я получаю эту ошибку? Любая помощь будет оценена. Спасибо.
import 'reflect-metadata';
import { Container, multiInject, injectable, } from 'inversify';
interface IWeapon {
name: string;
}
interface INinja {
weapons: IWeapon[],
displayWeapons(): void,
}
@injectable()
class Katana implements IWeapon {
public name = 'Katana';
}
@injectable()
class Shuriken implements IWeapon {
public name = 'Shuriken';
}
@injectable()
class Ninja implements INinja {
public weapons: IWeapon[];
constructor(
@multiInject('Weapon') _weapons: IWeapon[],
) {
this.weapons = _weapons;
}
public displayWeapons = () => {
console.log(this.weapons[0].name, this.weapons[1].name);
}
}
const container = new Container();
container.bind<INinja>("Ninja").to(Ninja);
container.bind<IWeapon>("Weapon").to(Katana);
container.bind<IWeapon>("Weapon").to(Shuriken);
const ninja = container.get<INinja>('Weapon');
ninja.displayWeapons(); // Should display all weapons.