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

VS Code提示tsc与eslint都不报的TypeScript错误该如何解决?

解决方案

  1. 对齐TypeScript版本(核心问题)
    你项目package.json中指定的TS版本为3.9.7,但VS Code默认使用内置的高版本TypeScript进行类型检查。高版本TS(4.4及以上)默认开启了useUnknownInCatchVariables规则,要求catch块的参数必须按unknown类型处理,这就是你那段catch代码报错的原因,而本地tsc用的是3.9版本,没有该规则所以不会报错。
    操作方法:
    打开项目中任意.ts文件,点击编辑器右下角的{} TypeScript 版本号按钮,在弹出的选项中选择「使用工作区版本」,VS Code会自动读取./firebase/functions/node_modules/typescript下的3.9版本进行校验,和本地tsc行为完全对齐。

  2. 修正TS配置路径
    你项目的根tsconfig存放在./firebase/functions目录下,VS Code默认会从项目根目录查找tsconfig,找不到就会使用默认校验规则,导致和手动在functions目录执行tsc的结果不一致。
    在工作区设置中添加以下配置:

{
  "typescript.tsdk": "./firebase/functions/node_modules/typescript/lib",
  "typescript.workingDirectories": ["./firebase/functions"]
}
  1. 对齐ESLint行为
    你已经配置了eslint.workingDirectories指向functions目录,补充一条配置关闭高版本ESLint才支持的Flat Config检测,避免和你本地7.x版本的ESLint行为不一致:
{
  "eslint.useFlatConfig": false
}
  1. 重启生效
    按Ctrl+Shift+P(Mac系统为Cmd+Shift+P)呼出命令面板,执行「TypeScript: 重启TS服务器」,或直接重启VS Code即可。

配置完成后VS Code的TS、ESLint校验结果会和本地命令行执行的tsc、eslint完全一致,不会出现多余报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:06:04