Skip to content

Instantly share code, notes, and snippets.

View JonasHelming's full-sized avatar

Jonas Helming JonasHelming

  • EclipseSource Munich
  • Munich
View GitHub Profile
export default new ContainerModule(bind => {
bind(InterfaceA).to(ClassA);
})
@injectable()
export class ClassA implements InterfaceA {
new CollectionConsumer([{ foo(): void { console.log('Mock foo') }}]).doSth();
@injectable()
export class CollectionConsumer {
constructor(
@multiInject(InterfaceC) private setOfInterfaceC: InterfaceC[],
) { }
doSth() {
this.setOfInterfaceC.forEach(interfaceC => interfaceC.foo());
}
constructor(
@inject(MyClass) private myClass: MyClass
) { }
@inject('InterfaceB') private interfaceB: InterfaceB
export const InterfaceA = Symbol('InterfaceA');
export interface InterfaceA {
foo(): void;
}
export const InterfaceB = 'InterfaceB';
export interface InterfaceB {
bar(): void;
}
@injectable()
export class SimpleConsumer {
@inject(InterfaceA) private interfaceA: InterfaceA;
constructor(
@inject(InterfaceB) private interfaceB: InterfaceB
) { }
doSth() {
this.interfaceA.foo();
bind(MenuContribution).to(ExampleMenuContribution);
@injectable()
export class ClassForInterfaceViaString implements InterfaceViaString {
do(): void {
console.log('Class Via String');
}
}