element 指的是一个值,但在这里被用作一种类型

Xee*_*een 2 javascript typescript reactjs eslint react-hooks

我有以下代码:

export const StateContext = createContext({});
const StoreProvider: any = StateContext.Provider;
export const StateProvider = ({ reducer, initialState, children }: any) => (
  <StoreProvider value={useReducer(reducer: any, initialState: any)}>
    {children}
  </StoreProvider>
);
Run Code Online (Sandbox Code Playgroud)

但是 TypeScript 抛出了一个错误'StoreProvider' refers to a value, but is being used as a type here.——为什么?我假设它把它看作是一个通用的,但如何让它看到需要?

小智 5

我在我的项目中遇到了同样的错误并解决了问题。也许您的文件扩展名是 ts,而不是 tsx。如果你使用的是 Parcel 之类的,编译器会认为该文件没有使用 React。