typescript - Care sunt tipurile pentru evenimentele de input în Vue


Care sunt tipurile corecte Typescript pentru evenimentele de input în Vue? Când folosesc Event lipsesc proprietățile target, value, key sau files.

Să avem un exemplu pentru:

<input @input="(e: MISSING_TYPE) => {}" />
<input @keypress="(e: MISSING_TYPE) => {}" />

În React avem ceva de genul ChangeEvent care este generic și aplică tipuri specifice elementului. Cum facem asta în Vue?

Răspuns #1

Mulțumită răspunsului lui @steve16351 în comentarii, există un rezumat:

Pentru evenimente de tastatură, cum ar fi apăsarea unei taste, puteți folosi un eveniment mai specific din Event -> UIEvent -> KeyboardEvent:

<input @keypress="handleKeypress" />

handleKeypress(e: KeyboardEvent) { }

Pentru un eveniment mai specific, cum ar fi modificarea inputului pe HTMLInputElement, trebuie să îl convertești:

<input @input="handleInput" />

handleInput(e: Event) { 
  const target = (<HTMLInputElement>e.target)

  console.log(target.value)
}