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

React/TypeScript构建报TS2304找不到Fragment、TS5052错误咨询

错误原因

两个报错本质都是tsconfig.build.json中的错误JSX配置导致的连锁问题:

  1. TS5052配置错误触发原因
    构建使用的tsconfig.build.json中手动设置了"jsxFactory": ""空值。microbundle构建时依赖的rpt2(rollup-plugin-typescript2)插件在处理jsx: "react"模式的TS文件时,会默认注入jsxFragmentFactory的默认配置;而TypeScript的校验规则明确要求:只要指定了jsxFragmentFactory配置,就必须同时指定合法非空的jsxFactory值,空字符串属于无效配置,直接触发TS5052报错。
  2. TS2304找不到Fragment错误触发原因
    由于jsxFactory配置无效,TypeScript无法按照经典React JSX模式解析代码中的短片段语法<></>。在正常的jsx: react模式下,<></>会被编译为React.Fragment,但配置失效后TS不会自动关联React导出的Fragment,就会抛出找不到名称Fragment的语义错误,报错指向的9行位置正好是代码中第一处使用<>...</>短片段语法的位置。
修复方法
  • 直接删除tsconfig.build.json中多余的"jsxFactory": ""配置项即可。你当前使用React 17版本对应的经典JSX运行时,TS默认的jsxFactory值就是React.createElement、jsxFragmentFactory默认值就是React.Fragment,不需要手动覆盖为空。
  • 如果后续有自定义JSX工厂函数的需求,必须成对配置两个参数,比如经典React模式下的完整配置为:
    {
      "compilerOptions": {
        "jsx": "react",
        "jsxFactory": "React.createElement",
        "jsxFragmentFactory": "React.Fragment"
      }
    }
    

修改配置后重新执行yarn build命令即可正常构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:09:23