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

Angular 15项目'$localize'未定义的ESLint错误修复求助

修复Angular 15中ESLint报错'$localize' is not defined的问题

你遇到的问题是ESLint无法识别$localize全局变量——尽管@angular/localize/init已经在polyfills中导入并在运行时生效,但ESLint默认不知道这个全局注入的变量。以下是几种可行的修复方式:

方法一:在ESLint配置中声明全局变量

直接在.eslintrc.json的全局配置里添加$localize,让ESLint将其视为合法的全局变量:

修改你的配置文件,在env同级添加globals字段:

{
  "root": true,
  "ignorePatterns": [
    "projects/**/*"
  ],
  "env": {
    "browser": true
  },
  "globals": {
    "$localize": "readonly"
  },
  // ... 其他配置内容不变
}

如果只想针对TypeScript文件生效,也可以在对应的overrides块中添加globals:
比如第一个针对*.ts的override里:

{
  "files": [
    "*.ts"
  ],
  "parserOptions": {
    "project": [
      "tsconfig.json"
    ],
    "createDefaultProgram": true
  },
  "globals": {
    "$localize": "readonly"
  },
  // ... 其他extends和rules不变
}

方法二:通过TypeScript类型声明辅助ESLint识别

确保你的tsconfig.json中包含@angular/localize的类型,这样TypeScript(以及依赖它的ESLint插件)能正确识别$localize:

在tsconfig.json的compilerOptions.types数组中添加@angular/localize:

{
  "compilerOptions": {
    // ... 其他配置
    "types": [
      "@angular/localize"
    ]
  }
}

结合方法一使用,能同时解决类型提示和ESLint检查的问题。

验证修复

修改配置后,重启ESLint服务(或重新运行lint命令),no-undef错误应该会消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 21:25:43