Энзимная шутка TS2722: Не может вызвать объект, который, возможно, «не определен»

#reactjs #typescript #jestjs #enzyme #fluent-ui

#реагирует на #машинописный текст #jestjs #фермент #свободно-пользовательский интерфейс

Вопрос:

Я пишу тест на фермент шутки, в котором пытаюсь запустить onDismiss функцию.

Я зарегистрировал, что онДисмисс существует. Я смог найти панель сообщений и зарегистрировал, что функция onDismiss существует.

 const message_bar = tree.find(MessageBar); // This finds the message_bar we are looking for. console.log('MMMM:', message_bar.props()) message_bar.props().onDismiss() lt;-- error  

Я пытался добавить необязательную цепочку в нескольких местах, но безуспешно. В одном или нескольких местах. Смотрите примеры ниже

 if (message_bar.props() amp;amp; message_bar.props().onDismiss()) {  message_bar.props().onDismiss(); }  

Вывод журнала консоли реквизитов:

 { messageBarType: 1, isMultiline: true, onDismiss: [Function (anonymous)], dismissButtonAriaLabel: 'Close', ariaLabel: 'Error Details', styles: {  root: { marginLeft: '0%', width: '100%' },  text: { fontSize: '14px', fontWeight: 400 } }, className: 'errorMessage-127', children: 'Some error occurred. Please try again' }  

Возможно, у меня неправильная настройка или я издеваюсь над предназначенной функцией.

Комментарии:

1. Возможно, вам потребуется предоставить здесь больше контекста, но вы могли бы попробовать if (typeof message_bar.props().onDismiss === 'function') { ... }