Обрабатываю
children, которые были созданы с
forwardRef функцией, так что у них есть свойство
child.ref. Но
TypeScript выдаёт ошибку
Свойство "ref" не существует в типе "string | number | boolean | ReactElement<any, string | JSXElementConstructor<any>> | ReactFragment | ReactPortal".
Тут можно было бы подумать, что он не может найти свойство
ref в примитивах
"string | number | boolean", но даже при отсеивании этих типов с помощью
typeof, он не может найти свойство
ref:
Свойство "ref" не существует в типе "ReactElement<any, string | JSXElementConstructor<any>> | ReactFragment | ReactPortal".
Свойство "ref" не существует в типе "ReactElement<any, string | JSXElementConstructor<any>>".ts(2339)
Вот код (упрощено для примера):
{React.Children.map(props.children, (child) => {
if (
typeof child !== 'string' &&
typeof child !== 'number' &&
typeof child !== 'boolean'
) {
console.log(child?.ref);
}
return <div>{child}</div>
})}
Подскажите, какой тип там, или, возможно, я не правильно получаю ref дочернего элемента?