Angular13搭配TypeScript4.5.2时tsconfig出现noImplicitOverride未知选项报错
问题原因分析
noImplicitOverride是TypeScript 4.3版本才新增的编译配置项,低于该版本的TypeScript识别不了这个参数,不管你设为true还是false都会抛出「Unknown compiler option」的错误。- 最常见的诱因是编辑器使用的TypeScript版本与项目本地安装的版本不匹配:比如VSCode默认自带的TypeScript版本可能低于4.3,即使项目本地装了4.5.2,编辑器没有切换到工作区版本的情况下,仍然会用自带的旧版本校验tsconfig配置,就会持续报错。
- 其次可能是项目实际安装的TypeScript版本不符合要求,或者tsconfig.json存在语法错误,导致配置解析异常。
解决步骤
- 先确认项目依赖的TypeScript版本符合要求
打开项目根目录的package.json,检查devDependencies下的typescript版本是否≥4.3,如果版本不对,执行以下命令安装指定版本:
npm install typescript@4.5.2 --save-dev # 用yarn的话执行:yarn add typescript@4.5.2 --dev
安装完成后可以执行npx tsc -v确认本地版本确实为4.5.2。
- 切换编辑器的TypeScript版本为工作区版本(以VSCode为例)
- 打开项目内任意一个
.ts后缀的文件 - 点击编辑器右下角显示的TypeScript版本号
- 在弹出的选项中选择「使用工作区版本」即可
如果是其他编辑器,也可以在设置里找到TypeScript版本相关的配置,指定为项目node_modules下的TypeScript路径。
- 补全tsconfig.json的语法错误
你贴出的配置最后缺少闭合的},补全后完整配置如下:
{ "baseUrl": "./", "outDir": "./dist/out-tsc", "forceConsistentCasingInFileNames": true, "strict": true, "noImplicitOverride": true, "noPropertyAccessFromIndexSignature": true, "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, "sourceMap": true, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "moduleResolution": "node", "importHelpers": true, "target": "es2017", "module": "es2020", "lib": [ "es2020", "dom" ] }
- 重启编辑器重载配置
如果以上操作完成后仍然报错,呼出编辑器命令面板(VSCode按Ctrl+Shift+P/ Command+Shift+P),选择「重新加载窗口」,清空缓存后即可恢复正常。
内容的提问来源于stack exchange,提问作者Sz2013
相关产品推荐
相关产品推荐

