如何在使用 reactjs 构建的 jest Shallow 测试中修复组件变量的类型推断?

How to fix type inference for a component variable in a jest Shallow test built with reactjs?

我的场景是一个用打字稿构建的 React 项目,特别是关于涉及来自 Enzyme 的 shallow 的单元测试。 我正在努力使项目与 tsconfig 参数保持一致 "noImplicitAny": true, 我想知道如何解决下面描述的 let 组件问题。

let component

beforeEach(() => {
  component = shallow(<MyComponent format="%MM : %SS" />)
})

describe('#render', () => {
  it('shows the component correctly', () => {
    expect(component.find('.my-component').exists()).toEqual(true)
  })
})

错误

Variable 'component' implicitly has type 'any' in some locations where its type cannot be determined.ts(7034)

如何创建类型 MyComponent 到变量 component 的推断?

您需要将 component 变量键入 ShallowWrapper,并使用 MyComponent 的通用类型参数。这是如何完成的:

import { shallow, ShallowWrapper } from 'enzyme';

let component: ShallowWrapper<MyComponentProps>;
component = shallow<MyComponentProps>(<MyComponent format="%MM : %SS" />)