reactjs - 用 Jest 运行测试时的可选链接问题

标签 reactjs jestjs babeljs enzyme babel-jest

我正在尝试使用 Jest 运行测试,我目前在我的 React 应用程序中使用 jsx 和 tsx(从 js 更改为 ts),但是当我运行我的测试时,所有 jsx 测试都成功,除了 tsx 中带有可选阻塞的测试。我总是收到错误 Unexpected token在我的输入看起来像

...
<Input 
    value={parent?.child}
...
这是我的 Jest 配置
{
    "verbose": true,
    "roots": [
      "<rootDir>/app"
    ],
    "setupFiles": [
      "./config/webpack/jest/config.js"
    ],
    "moduleNameMapper": {
      "^components(.*)": "<rootDir>/app/javascript/components$1",
      "^utils(.*)": "<rootDir>/app/javascript/utils$1",
      "^types(.*)": "<rootDir>/app/javascript/types$1",
      "\\.(css|pcss|scss)$": "<rootDir>/spec/__mocks__/styleMock.js",
      "\\.(gif|ttf|eot|svg|png)$": "<rootDir>/spec/__mocks__/fileMock.js"
    },
    "snapshotSerializers": [
      "<rootDir>/node_modules/enzyme-to-json/serializer"
    ],
    "testRegex": "(/__tests__/.*|\\.(test))\\.(ts|tsx|js|jsx)$",
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js",
      "jsx"
    ],
    "transform": {
      "\\.[jt]sx?$": "babel-jest"
    }
}
我如何使用可选的链接和 Jest 可能是什么问题?

最佳答案

对我来说,问题在于我的 tsconfig.json ,我用的是 "lib": ["ES2020"] ,这与我的节点版本冲突。将节点版本更改为 v14 解决了该问题。
在这里,您将找到带有节点版本的 lib 目标的链接:
https://github.com/microsoft/TypeScript/wiki/Node-Target-Mapping

关于reactjs - 用 Jest 运行测试时的可选链接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66404639/

相关文章:

javascript - yarn ,例如 :'live-server' 未被识别为内部或外部命令

javascript - SSR : true prop with dynamic imports? 有什么好处

unit-testing - 如何测试 ReactDOM.render 和另一个导入函数在 Jest 中被调用?

javascript - 如何将 Babel 与 Electron 一起使用?

reactjs - React Native 升级到 0.56 版本后崩溃。可能是 Babel 问题?

javascript - Typescript 1.8 - ES2015 导入 js 文件

javascript - React useState - 每个组件使用一个状态还是多个状态?

javascript - 表格不断调整大小而不溢出

reactjs - Jest + enzyme 访问连接组件的实例

javascript - 使用 Jest Enzyme 测试 React Reducer