在打字稿中构建 React usecontext 出现编译问题

Building React usecontext in typescript got compile issue

所以我正在尝试构建一个 useAuth 上下文,因此在用户登录到应用程序后,以后可以从任何组件访问 jwt 令牌 我遇到了一个以前从未有过的奇怪的编译问题,请看截图:

明码如下:

    import { createContext, useContext, useReducer } from "react";
import authReducer, { initialTokenValue } from "../reducers/authReducer";

const AuthContext = createContext(initialTokenValue);

export const AuthProvider = ({ children }) => {
  const [state, dispatch] = useReducer(authReducer, initialTokenValue);

  const fetchNewTokenValue = (token: any) => {
    dispatch({
      type: "GET_AUTH_TOKEN",
      payload: token,
    })
  };

  const value = {
    token: state.token,
    fetchNewTokenValue,
  };


  //VS code complain AuthContext as: Cannot find namespace 'AuthContext'.ts(2503)
  //No quick fixes available
  //and Operator '<' cannot be applied to types 'boolean' and 'RegExp'.ts(2365)
  //Unterminated regular expression literal.ts(1161)
  //No quick fixes available
  return <AuthContext.Provider value={value}>{children}</AuthContext.Provider>
}

const useAuth = () => {
  const context = useContext(AuthContext);

  if (context === undefined)  {
    throw new Error("useAuth must be used within AuthContext");
  }

  return context;
}

export default useAuth;

在理论中,它应该可以工作,然后我可以使用如下:

但是正如您在第一个屏幕截图中看到的,我找不到摆脱红线的方法。由于错误,该应用程序不是 运行。很奇怪.. 它应该有效,对吧? 任何人都可以指出我的设置有什么问题吗? 谢谢

当使用 JSX 时,你的文件名应该以 .tsx 而不是 .ts 结尾(html 在 js 中)