BenderIsGreat34
@BenderIsGreat34
junior front-end

Какой тип указать для children.current у TS?

const handleClick = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>, children: ReactNode): void => {
        if (children) {
            const {current}: HTMLUListElement = children;
            if (current) {
                current.scrollTop = list.current.scrollHeight;
            }
        }
    }
setTimeout(() => handleClick(e, props.children), 0);

сыпится ошибка на current:
TS2322: Type 'string | number | true | {} | ReactElement ReactElement Component)> | null) | (new (props: any) => Component<...>)> | ReactNodeArray | ReactPortal' is not assignable to type 'HTMLUListElement'. Type 'string' is not assignable to type 'HTMLUListElement'.
TS2339: Property 'current' does not exist on type 'HTMLUListElement'.


не понимаю как задать current значение HTMLUListElement
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега TypeScript
Тлен
Возможно ак:
const {current}: {current: HTMLUListElement} = children;

или так:
const current = children.current as HTMLUListElement;

Вы же задаёте тип не current, а всего объекта.

P.S. Про ts-ignore забудьте.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Rerurk
С //@ts-ignore компилятор все равно ошибку дает?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 22:03
3000 руб./за проект
23 нояб. 2024, в 21:53
30000 руб./за проект
23 нояб. 2024, в 21:49
1000 руб./в час