Допустим, я хочу получить доступ к последнему элементу в массиве элементов JSX.
let array = [
<button type="button" />,
<button type="button" />,
<button type="button" />,
];
let last = array[array.length - 1];
Вывод типа здесь работает нормально.
Но теперь допустим, что я хочу прикрепить ссылку к последнему элементу в этом массиве.
let last = React.useRef<HTMLButtonElement>();
let array = [
<button type="button" />,
<button type="button" />,
<button type="button" />,
];
last.current = array[array.length - 1];
Приведенный выше фрагмент кода приводит к этой ошибке.
Type 'Element' is missing the following properties from type 'HTMLButtonElement':
disabled, form, formAction, formEnctype, and 249 more.
Я подумал, что, возможно, мне нужно было явно набрать array: HTMLButtonElement[]
, но это просто перемещает ошибку в объявление массива.
Изменение типа ссылки на React.useRef<JSX.Element>
устранит ошибку, но утратит специфичность обеспечения ее элемента кнопки.