Búsqueda de sitios web

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
}