TSLint已完全弃用,必须卸载相关插件和依赖、删除tslint配置文件、配置ESLint使用@typescript-eslint/parser解析TypeScript文件,并关闭VSCode内置TS/JS校验,否则规则不生效、报错不提示、保存不修复。

VSCode 里 TSLint 已被完全弃用,继续启用只会干扰 ESLint 的正常工作——必须手动清理残留配置、禁用相关插件,并确保 TypeScript 文件由 @typescript-eslint/parser 解析,否则会出现规则不生效、报错不提示、保存不修复等现象。
卸载 TSLint 相关插件和依赖
VSCode 插件市场里搜 “TSLint” 并卸载所有带该关键词的扩展(尤其是 eg2.tslint),哪怕它显示“已启用”也得关掉。同时检查项目 package.json 中是否还存在 tslint 或 tslint-config-* 类依赖:
- 运行
npm ls tslint或yarn list tslint确认无输出 - 若有,执行
npm uninstall tslint --save-dev(或对应yarn remove) - 删掉项目根目录下的
tslint.json或tslint.yml配置文件
确认 ESLint 正确加载 TypeScript 解析器
即使装了 @typescript-eslint/parser,VSCode 仍可能因配置缺失而跳过 .ts 文件校验。关键点有三个:
-
.eslintrc.cjs(推荐)或eslint.config.js中必须显式设置parser: '@typescript-eslint/parser' - 必须安装
@typescript-eslint/parser和@typescript-eslint/eslint-plugin,且版本需匹配(v7+ 推荐) - VSCode 设置中
eslint.validate必须包含"typescript"和"typescriptreact"(.tsx 文件需要)
示例片段(.eslintrc.cjs):
完整的Galileo AI平台 TypeScript/JS SDK 参考,用于评估、观察和保护 GenAI 应用。适用于构建 Node.js 或 TypeScript 项目。
module.exports = {
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint'],
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'],
rules: {
'@typescript-eslint/no-explicit-any': 'warn'
}
};
关闭 VSCode 内置 TS/JS 校验与 TSLint 遗留开关
VSCode 自带的语言服务会和 ESLint 抢着报错,尤其在未关闭 typescript.validate.enable 时,你看到的红色波浪线可能根本不是 ESLint 发出的。
- 在
settings.json中强制关闭:"typescript.validate.enable": false和"javascript.validate.enable": false - 搜索并禁用所有以
tslint.开头的设置项(如tslint.autoFixOnSave),它们已失效但可能干扰启动流程 - 重启 VSCode 窗口(不是重载),否则旧语言服务进程仍在后台运行
验证 ESLint 是否真正接管 .ts 文件
最容易被忽略的是:VSCode 可能识别了 ESLint 插件,却没把当前文件交给它处理。验证方式很直接:
- 打开任意
.ts文件,右下角确认语言模式是TypeScript(不是Plain Text或JavaScript React) - 按
Ctrl+Shift+P运行ESLint: Show Output Channel,看日志里是否有Using configuration from /path/to/.eslintrc.cjs - 故意写一行
const a: any = 1;,若配置正确,应立刻出现@typescript-eslint/no-explicit-any提示;若没反应,大概率是eslint.validate漏掉了typescript
注意:多根工作区下,eslint.workingDirectories 必须显式列出含 TypeScript 配置的子目录,否则子项目里的 .ts 文件会被跳过。

















