Поскольку <App/>
имеет универсальный тип JSX.Element
, он не содержит достаточно информации для вывода типа состояния в результате shallow
(то же самое относится и к типам реквизита и компонентов).Это можно исправить, экспортировав IAppState
из App.tsx
и параметризовав shallow
с компонентами, реквизитами и типами состояний:
import App, {IAppState} from './App';
..
const app = shallow<App, {}, IAppState>(<App />); // {} is props type
..
Это также должно правильно ввести app.instance()
и app.setProps()
.В качестве альтернативы, вы можете просто протестировать на обычном JavaScript, поскольку я не уверен, что выполнение этого в TypeScript стоит дополнительных усилий.