Tengo en mi componente un EventEmitterpero no puedo compilarlo porque devuelve el error:
Supplied parameters do not match any signature of call target
Mi componente:
@Output() addModel = new EventEmitter<any>();
saveModel($event, make, name) {
this.addModel.emit(make, name);
}
Si elimino uno de los parámetros en this.addModel.emit()él, funciona, pero entonces: ¿Puedo pasar 2 parámetros a mi eventEmittery cómo?
Probé también con:
@Output() addModel = new EventEmitter<any,any>();
pero no funciona.
angular
eventemitter
LorenzoBerti
fuente
fuente

EventEmitterobjeto ..Otra opción para escribirlo fuertemente es la siguiente:
@Output addModel = new EventEmitter<{make: string, name: string}>();luego puede emitirlo como muestra @ Pankaj-Parkar
this.addModel.emit({make, name});o
this.addModel.emit({make: 'honda', name: 'civic'});Ahora tiene una escritura fuerte en lugar de usar
objectoany.fuente
Lo arreglé haciendo
Entonces pude pasar un objeto como:
Y funcionó.
fuente
publish(event, value)&subscribe(e, value) {...}. Estoy un poco sorprendido de que Angular definiera su interfaz / implementara esto de la manera que lo hicieron.new EventEmitter<{name: string, age: number}>();Sé que esta es una pregunta antigua para mí.Crearía una interfaz y la enviaría como un objeto donde puedo tener mi código más organizado.
y llámalo de la siguiente manera
fuente