Если Вы смотрите EventEmitter
API emit
метод, он может только взять единственный параметр типа T
, испускают (значение?: T)
, Так как только единственный параметр позволяется, рассмотрите передающий параметр, поскольку в object
в испускают метод. Аналогично в ниже метода make
& name
переменная содержат их соответствующие значения.
this.addModel.emit({make: make, name: name});
//shorthand is below
this.addModel.emit({make, name});
Другая опция сильно ввести его следующие:
@Output addModel = new EventEmitter<{make: string, name: string}>();
можно затем испустить его, любят @Pankaj-Parkar шоу
this.addModel.emit({make, name});
, или
this.addModel.emit({make: 'honda', name: 'civic'});
у Вас теперь есть строгий контроль типов вместо того, чтобы использовать object
или any
.
Я зафиксировал его путем создания
EventEmitter<object>();
Затем, я смог передать объект, такой как:
this.MyOutputVariable.emit({ name: 'jack', age: '12' });
И это работало.
Я знаю, что это - старый Вопрос для меня, я создал бы интерфейс и отправил бы его как объект, где я могу иметь свой код, более организованный
export interface addModelArgs{
make:string,
name:string
}
@Output() addModel = new EventEmitter<addModelArgs>();
, и назвать его как после
this.addModel.emit({make: 'honda', name: 'civic'});
or
let savParamters:addModelArgs={make: 'honda', name: 'civic'};
this.addModel.emit(savParamters);