Recibo un error al compilar la aplicación angular.
Plantilla HTML
<mat-form-field *ngIf="requested"> <input matInput (input)="sendingAccesscode($event)" placeholder="{{ 'CODE_LABEL' | i18next }}" name="accesscode" formControlName="accesscode" minlength="6" required /> </mat-form-field>Mecanografiado
sendingAccesscode(event: { target: { value: string }}) { if (event.target?.value.length >= 6) { this.accessCode.emit(event.target.value); } }Estoy teniendo el siguiente error:
error TS2345: Argument of type 'Event' is not assignable to parameter of type '{ target: { value: string; }; }'. Types of property 'target' are incompatible. Type 'EventTarget | null' is not assignable to type '{ value: string; }'. Type 'null' is not assignable to type '{ value: string; }'. 13 (input)="sendingAccesscode($event)" ~~~~~~```El error se debe a que el modo estricto angular está habilitado. En el modo estricto Angular, asegúrese de que la escritura en los tipos de plantilla infiera correctamente en lo que se ha llamado en el lado de TS.
Aquí, el mecanografiado no puede determinar qué sucede cuando el objeto de target se evalúa al destruir { target: { value: string }} . Por lo tanto, primero debe convertir los objetos al Type relevante aquí para inferir el tipo HTMLInputElement apropiado. Luego, el resto de las cosas se ordenan en el lado mecanografiado.
const value = (event.target as HTMLInputElement).value;