【发布时间】:2021-07-05 02:28:17
【问题描述】:
我不确定使用 React 测试库的渲染的自定义渲染函数的返回类型,我会假设它是元素或 JSX,但这似乎不起作用。
代码:
import React, { ReactElement } from 'react'
import { render, RenderOptions } from '@testing-library/react'
import { theme } from './theme'
import { ThemeProvider } from 'styled-components'
import { Provider } from 'react-redux'
import { createStore } from 'redux'
import { searchReducer, initialState } from './store/reducer/searchReducer'
const store = createStore(searchReducer, initialState)
interface ProviderProps {
children?: NonNullable<React.ReactNode>
}
const TheProvider: React.FC<ProviderProps> = ({
children,
}) => {
return (
<Provider store={store}>
<ThemeProvider theme={theme}>
{ children }
</ThemeProvider>
</Provider>
)
}
// here is the issue for function return type
const customRender= (
ui: ReactElement,
options?: Omit<RenderOptions, 'queries'>
) => render(ui, { wrapper: TheProvider, ...options })
export * from '@testing-library/react'
export { customRender as render }
【问题讨论】:
-
它应该隐式返回与来自
@testing-library/react的render函数相同的类型。 -
这就是我的假设,但是我的 customerRender 函数道具有“缺少函数的返回类型”的警告,当我为函数提供返回类型“typeof render”时,它会出错;类型 'RenderResult
' 不可分配给类型 '{
标签: reactjs typescript function react-testing-library react-typescript