Как создать функцию, которая проверяет, не является ли ссылка реакции не нулевой, используя машинописный текст - PullRequest
1 голос
/ 20 июня 2020

У меня есть пример с использованием реакции и ссылок:

Это работает:

refTable = React.createRef<HTMLElement>();
if(typeof refTable !== 'function' && refTable !== null && refTable.current) {
  console.log(refTable.current);
}

Это не удается

type shapeAllowRefs = React.RefObject<HTMLElement>;
const allowRef = (ref:shapeAllowRefs):boolean => (typeof ref !== 'function' && ref !== null && ref.current ? true : false);

const refTable = React.createRef<HTMLElement>();
if(allowRef(refTable)) {
 console.log(refTable.current);
}

Ошибка:

- - Аргумент типа HTMLTableElement | null 'не может быть назначен параметру типа' HTMLElement '. Тип 'null' не может быть назначен типу 'HTMLElement'.

Я создал пример на игровой площадке машинописного текста, и он работает там, используя аналогичную концепцию, но, к сожалению, я не могу воспроизвести проблему выше. Кажется, это проблема с реакцией refs.

Эквивалентный более простой пример - работает


type shapeX = null | {
  current: string
} | (() => void);

const allowRef = (ref: shapeX): boolean => (
  typeof ref !== 'function' && ref !== null && ref.current ? true : false
);

const obj:shapeX = { current: 'john' };
if (allowRef(obj)) {
  console.log('obj = ', obj);
}

любые идеи, почему он не работает, используя - if (allowRef (refTable))

спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...