Typescript Reactjs Ошибка Jest / Enzyme - «Тип 'any []' не содержит следующих свойств ...» - PullRequest
3 голосов
/ 10 июля 2020
let wrapper;
const setState = jest.fn();
const useStateSpy = jest.spyOn(React, "useState")
useStateSpy.mockImplementation((init) => [init, setState]);

beforeEach(() => {
    wrapper = Enzyme.mount(Enzyme.shallow(<AddOption/>).get(0))
});

afterEach(() => {
    jest.clearAllMocks();
});

Я пытаюсь имитировать состояние, однако для этой строки -

useStateSpy.mockImplementation((init) => [init, setState]);

Я получаю сообщение об ошибке:

Type 'any[]' is missing the following properties from type '[unknown, Dispatch<unknown>]': 0, 1ts(2739)

Я не уверен, как это исправить ошибка, и не удалось найти в Интернете много информации об исправлении такой ошибки для данного конкретного варианта использования.

1 Ответ

1 голос
/ 10 июля 2020

С моей точки зрения, это своего рода взлом, но вы можете попробовать это

...
const init = {}; // or anything you want to be the initial state
useStateSpy.mockImplementation(() => [init, setState] as any);
...

OR

...
const init = {}; // or anything you want to be the initial state
useStateSpy.mockReturnValue([init, setState] as any);
...
...