Ejecutando este código:
<app-pokemon-form *ngIf="showPokemonForm" (newPokemonEvent)="addNewPokemon($event)" (pokemonFormClose)="pokemonFormClose($event)" [pokemon]="currentPokemon"></app-pokemon-form>Provoca un error:
error TS2345: el argumento de tipo 'Evento' no se puede asignar al parámetro de tipo 'IPokemon'.
Aquí está el archivo TypeScript:
addNewPokemon(newPokemon: IPokemon): void { console.log('adding new pokemon ' + JSON.stringify(newPokemon)); this.pokemonService.addPokemon({ ...newPokemon }) .subscribe({ next: pokemon => { console.log(JSON.stringify(pokemon) + ' has been added'); this.message = "new pokemon has been added"; }, error: (err) => this.message = err });Y aquí está el modelo de pokemon en sí:
export interface IPokemon { _id: string, Name: string, Generation: Number, Type: string }Cualquier ayuda sería muy apreciada
Dado que su argumento $event es de tipo Event , lo que significa que no tiene (necesariamente) la forma de
interface IPokemon { _id: string, Name: string, Generation: number, Type: string } no puede pasar $event a su método addPokemon .
Puede verificar la forma del parámetro $event si coincide con la interfaz de IPokemon y si
$event tenga la forma adecuada, o$event as unknown as IPokemon en su llamada de función