You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React+TypeScript+Jest组件测试报错:Unexpected token '<' 求助

解决React TypeScript Jest中SyntaxError: Unexpected token '<'错误

这个错误的核心原因是Jest未正确转译TSX文件中的JSX语法,结合你的配置来看,主要有两处问题需要修正:

1. 修正Jest的转译配置

你的jest.config.js中transform仅针对.ts文件,未包含.tsx,导致TSX里的JSX标签无法被处理。修改transform字段:

module.exports = {
  // ...其他配置
  transform: {
    '^.+\\.(ts|tsx)$': 'ts-jest', // 同时匹配ts和tsx文件
  }
};

2. 调整TypeScript的JSX编译设置

你的tsconfig.json中jsx设为preserve,该选项会保留JSX语法不转译,而Jest运行时需要转译后的JS代码。将jsx改为react-jsx(React 17+推荐)或react:

{
  "compilerOptions": {
    // ...其他配置
    "jsx": "react-jsx",
    // ...其他配置
  }
}

如果不想修改全局tsconfig.json,可单独创建tsconfig.test.json用于测试环境:

{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "jsx": "react-jsx"
  },
  "exclude": ["**/node_modules"] // 不要排除测试文件
}

然后在jest.config.js中指定该配置:

module.exports = {
  // ...其他配置
  globals: {
    'ts-jest': {
      tsconfig: 'tsconfig.test.json'
    }
  }
};

验证修改

重新运行测试命令:

npm run test

此时Jest会正确转译TSX文件中的JSX语法,组件测试应该可以正常执行了。

内容的提问来源于stack exchange,提问作者The Rock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 12:07:02