Jest + Typescript lint错误:TS2339:类型'IntrinsicAttributes中不存在属性'store'

时间:2017-08-07 13:05:23

标签: reactjs typescript react-native jestjs

我的Jest测试是在本机上运行的,但是当我检查Typescript linter时,我收到了这个错误:

error TS2339: Property 'store' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<{}, ComponentState>> & Readonly<{ childr...'.

顺便说一下,我正在研究反应原生。

这个错误行引发错误: const home = shallow(<Home store={store}/>)

2 个答案:

答案 0 :(得分:2)

您的Home很可能是由connect()返回的包装组件。 在这种情况下,有几种方法可以在测试中处理这个问题:

1)如果您不需要连接道具和操作进行测试,那么只需使用未包装的Home组件,如此处所述https://github.com/reactjs/redux/blob/master/docs/recipes/WritingTests.md#connected-components

2)用Provider包裹您的组件,例如; wrapper = mount(<Provider store={store}><Home /></Provider>。缺点是您的快照也包含有关提供商的信息,您不能使用浅层测试Home组件。

3)在IntrinsicAttributes文件中扩展.d.ts,如下所示:

declare namespace JSX {
  interface IntrinsicAttributes {
    store: any;
  }
}

并将其包含在测试中。

答案 1 :(得分:-2)

<Home store={store}/>中的您的组件是Home,并且它没有store属性。

因此错误。

修复

store组件添加Home道具。