Search code examples
angulareventemitter

How pass 2 parameters to EventEmitter in Angular?


I have in my component an EventEmitter but I can't compile it because it throws the error:

Supplied parameters do not match any signature of call target

My component:

@Output() addModel = new EventEmitter<any>();

saveModel($event, make, name) {
  this.addModel.emit(make, name);
}

If I delete one of the parameters in this.addModel.emit() it works but is it possible to pass 2 parameters to EventEmitter and how?


Solution

  • If you look at the EventEmitter emit method @ angular.io, it can only take a single parameter of type T

    emit(value?: T)

    Since only a single parameter is allowed, consider passing it as an object in emit method.

    In the snippet below, make & name variables are holding their respective values:

    this.addModel.emit({make: make, name: name});
    //shorthand is below
    this.addModel.emit({make, name});