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

升级到TypeScript4.4.2后报'JSX' is not defined no-undef错误如何解决

解决方案
  • 禁用ESLint原生no-undef规则
    原生no-undef规则不识别TypeScript的类型声明语法、全局类型定义以及.d.ts文件中的声明内容,在.eslintrc(或.eslintrc.js等对应配置文件)的rules字段中关闭该规则即可,未定义变量的校验可直接使用TypeScript自身的编译检查能力:
{
  "rules": {
    "no-undef": "off"
  }
}

如果需要保留ESLint层面的未定义校验,可以开启适配TS语法的@typescript-eslint/no-undef规则:

{
  "rules": {
    "no-undef": "off",
    "@typescript-eslint/no-undef": "error"
  }
}
  • 针对.d.ts声明文件添加特殊配置
    在.eslintrc的overrides字段中单独对声明文件设置规则豁免,同时确认tsconfig.json的include数组包含了declarations.d.ts文件,保证TypeScript可以正常识别文件内的全局声明:
    ESLint配置示例:
{
  "overrides": [
    {
      "files": ["**/*.d.ts"],
      "rules": {
        "no-undef": "off"
      }
    }
  ]
}

tsconfig.json配置示例:

{
  "include": ["src/**/*", "declarations.d.ts"]
}
  • 修复JSX is not defined报错
    检查tsconfig.json的compilerOptions下的jsx配置是否正确,React项目推荐设置为react-jsx(适配React17+的新JSX转换)或react,同时确保@types/react依赖版本适配TypeScript 4.4,建议升级到17.0.2及以上版本。
    如果你的项目中存在自定义全局JSX类型声明,需要确保声明包裹在declare global块中,符合TypeScript 4.4的全局声明规范:
declare global {
  namespace JSX {
    interface IntrinsicElements {
      // 自定义元素声明内容
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:39:02