如何通过玩笑的酶推论来推断类型

问题描述 投票:1回答:1

我有一个包装在Provider内的组件,并且我使用酶架进行测试。我想在使用wrapper.find时推断类型,以便我可以访问组件状态并具有所有类型。这是我正在运行的代码的示例:

const wrapper = mount<Provider>(
  <Provider mocks={mocks}>
    <MyComponent
      foo={bar}
    />
  </Provider>
);

const MyComponentInstance = wrapper.find("MyComponent").instance();

expect(MyComponentInstance.state.isBar).toBe(true);

MyComponentInstance是我想要获取类型推断的位置,因此以后可以调用MyComponentInstance.state.isBar

MyComponent State类型的定义是这样的:

type State = {
  isBar: boolean
}
export class MyComponent extends Component {
  public state : State = {
    isBar: false
  }
}
javascript typescript jestjs enzyme
1个回答
1
投票

根据the documentation,您还可以通过其构造函数查找组件。因此,您可能需要尝试以下操作:

const wrapper = mount<Provider>(
  <Provider mocks={mocks}>
    <MyComponent
      foo={bar}
    />
  </Provider>
);

const MyComponentInstance = wrapper.find(MyComponent).instance();

expect(MyComponentInstance.state.isBar).toBe(true);

TypeScript现在应该可以推断类型,但是是否可行取决于您使用的类型定义。

© www.soinside.com 2019 - 2024. All rights reserved.