I am using inversifyJs for DI in my typescript project. When using the decorator @multiInject, I am getting the error "Ambiguous match found for serviceIdentifier". I am following this example (https://github.com/inversify/InversifyJS/blob/master/wiki/multi_injection.md). Why am I getting this error? Any help will be appreciated. Thanks.
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.