Angular 编译器中的错误要求 TypeScript >=3.6.4 和 <3.8.0,但找到了 3.8.2

ERROR in The Angular Compiler requires TypeScript >=3.6.4 and <3.8.0 but 3.8.2 was found instead

我运行

ng version

并得到以下输出:

Angular CLI: 9.0.3
Node: 12.16.1
OS: win32 x64

Angular: 9.0.2
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Ivy Workspace: Yes

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.803.25
@angular-devkit/build-angular     0.803.25
@angular-devkit/build-optimizer   0.803.25
@angular-devkit/build-webpack     0.803.25
@angular-devkit/core              8.3.25
@angular-devkit/schematics        9.0.3
@angular/cdk                      8.2.3
@angular/cli                      9.0.3
@angular/material                 8.2.3
@ngtools/webpack                  8.3.25
@schematics/angular               9.0.3
@schematics/update                0.900.3
rxjs                              6.5.4
typescript                        3.8.2
webpack                           4.39.2

如果我尝试将类型脚本设置得较低,它会抱怨项目是 Angular 9 并且不能使用该类型的类型脚本。不知道该怎么做,欢迎任何帮助,谢谢。

这意味着 Angular 还不支持 TypeScript 3。8.x

您可以使用

中的 angularCompilerOptions.disableTypeScriptVersionCheck: true 选项绕过此错误

tsconfig.json

"angularCompilerOptions": {
   ...
   "disableTypeScriptVersionCheck": true,
},

另请参阅:

使用设置了ng更新命令的版本:npm install typescript@3.7.5

我遇到了同样的问题。我注意到我的 package-lock.json 有打字稿:3.8.3。所以我 npm i typescript@3.7.5 构建了我的应用程序,它运行良好。

如果您收到一条错误消息,指出 Angular 编译器需要 TypeScript >=3.4.0 和 <3.5.0 但找到了 x.x.x,请执行以下步骤:

  1. 运行 npm i --save-dev-exact typescript@3.4.5
  2. 重新启动 ng serve 以在 localhost:4200 为项目提供服务。

最初 Package.json 有 "typescript": "^3.7.5" 和 Package-lock.json 有 3.9.10 .

我通过在 Package.json 中给出确切版本作为 "typescript": "3.7.5" 和 运行 npm install 来解决。 package-lock.json 使用给定版本生成的打字稿 属性。