Typescript HTMLInputElement из getByLabelText

#react-testing-library

#react-testing-library

Вопрос:

В настоящее время, если я делаю что-то вроде const input = getByLabelText('Checked'); , тип ввода — HTMLElement .

Однако, если я пытаюсь сделать что-то вроде expect(input.checked).toBe(true); или input.value , typescript становится грустным, потому что это не тип HTMLInputElement . Мне интересно, не упускаю ли я чего-то или типам нужно добавить универсальный, чтобы сделать что-то вроде getByLabelText<HTMLInputElement>()

Ответ №1:

Я привел их как HTMLInputElement , и это, вероятно, можно рассматривать как исправление с помощью лейкопластыря, но для этого оно и предназначено.

Хотя я больший поклонник const input = getByLabelText('Input') as HTMLInputElement , это легче увидеть