vue.js - Vue/Typescript: Checked no es una propiedad del tipo HTMLInputElement
Tengo un método que maneja una casilla de verificación, pero estoy teniendo un problema con target en el tipo de evento.
<input
@change="$emit('change', $event.target.checked)"
@keyup.enter="boxCheck($event)"
:checked="checked"
ref="test-input"
type="checkbox"
/>
////
boxCheck($event: HTMLInputElement) {
if ($event?.target?.checked) {
$event.target.checked = !$event.target.checked;
this.$emit('change', $event.target.checked);
}
},
mi error es La propiedad 'target' no existe en el tipo 'HTMLInputElement' pero pensé que solo se podía usar HTMLInputElement para esto.
Respuesta #1
El método boxCheck está recibiendo un Event y no un HTMLInputElement. Puedes derivar el tipo del elemento basado en tu uso al convertir el target dentro del método, como se muestra a continuación:
boxCheck($event: Event) {
const el = $event.target as HTMLInputElement
// el.checked now holds reference to what you need
}
