Angular 角度编译器需要TypeScript>=3.4.0和<;3.5.0但找到了3.5.3

Angular 角度编译器需要TypeScript>=3.4.0和<;3.5.0但找到了3.5.3,angular,typescript,Angular,Typescript,在执行npm运行生成时,我遇到以下错误: Angular编译器要求TypeScript>=3.4.0,并适用于Angular 11 对于在Angular 11(11.2.x)的最新版本上运行的项目,它最多支持TypeScript v4.1.5 npm i -D typescript@4.1.5 适用于角度10(截至2020年6月) 对于使用Angular 10的用户,请注意必须安装TypeScript 3.9,正如维护人员所做的那样。最安全的方法是安装最新版本的TypeScript npm i

在执行npm运行生成时,我遇到以下错误:

Angular编译器要求TypeScript>=3.4.0,并适用于Angular 11 对于在Angular 11(11.2.x)的最新版本上运行的项目,它最多支持TypeScript v4.1.5

npm i -D typescript@4.1.5
适用于角度10(截至2020年6月) 对于使用Angular 10的用户,请注意必须安装TypeScript 3.9,正如维护人员所做的那样。最安全的方法是安装最新版本的TypeScript

npm i -D typescript@3.9.5
适用于角度9(截至2020年5月) 对于运行在Angular 9最新版本(v9.1.x)上的项目,它最多支持TypeScript v3.8.3。如果您使用的是比该版本更新的版本(如TypeScript v3.9.0),则应将其降级并安装支持的版本:

npm i -D typescript@3.8.3
对于在Angular 9早期版本(v9.0.x)上运行的项目,支持的TypeScript版本为TypeScript v3.6.5至v3.7.5(包括)。安装任何其他不受支持的版本(如3.8.3)将导致类似以下错误:

ERROR in The Angular Compiler requires TypeScript >=3.6.4 and <3.8.0 but 3.8.3 was found instead
或者,您可以简单地将Angular更新到最新的次要版本(v9.1.x),因为这不应该包含任何中断性的更改


适用于角度8(原始答案) 您似乎安装了最新版本(v3.5.3)的TypeScript。您应该改为安装TypeScript v3.4.5,这是Angular 8支持的版本

您可以尝试使用此命令安装TypeScript的特定版本,而不是最新版本

npm i -D typescript@3.4.5

此外,您还可以考虑更改包上的Type脚本版本的插入符号<代码> ^ <代码>。JSON:

  • 完全删除它意味着它将阻止npm安装/使用最新的次要版本(3.5.3)

    “类型脚本”:“3.4.5”

  • 将其更改为“~”将告诉npm任何补丁发布都是可以接受的

    “typescript”:“~3.4.5”//将使用与3.4.X匹配的最新版本

有关使用npm软件包版本控制的更多信息:


适用于那些正在使用旧的Angular版本(如Angular 2到7)的用户 同样,如果我们使用任何其他Angular版本,您可以安装相应的TypeScript版本

npm i -D typescript@3.6.4
-请参阅每个角度版本支持的TypeScript版本的完整列表


其他有用信息 实际上,有一种方法可以安装项目中安装的Angular版本“不支持”的TypeScript版本,正如所指出的。这样做的一个好处是允许您在项目上安装最新版本的TypeScript(如
TypeScript 4.1.2
或任何测试版)

tsconfig.json
上,只需将
disableTypeScriptVersionCheck
设置为
true

{
  // ...
  "angularCompilerOptions": {
    // ...
    "disableTypeScriptVersionCheck": true
  }
}
但是,请注意,以下人员不建议这样做:

不建议使用,因为不支持的TypeScript版本可能会 未定义的行为


请使用以下命令卸载typescript:

npm uninstall typescript
然后安装特定于typescript的版本:

npm i --save-dev typescript@3.4.5

此问题主要取决于@angular/cli版本 所以类型脚本取决于角度版本

更新时,请检查此网站(DevDependence)

npm i—保存开发typescript@3.4.5

3.4.5需要版本

运行以下程序:

npm i --save-dev typescript@~3.4.5
您的错误是“^”
“typescript”:“^3.4.0”
在您的package.json中


解决方案是
“typescript”:“~3.4.0”

运行此脚本以找到准确的版本

npm install typescript@">=3.4.0 and <3.5.0" --save-dev
npm安装typescript@“>=3.4.0和好消息

如果升级到Angular 8.2+,可以使用TypeScript 3.5。8.1版还不支持它


证明:

您不需要卸载并再次安装typescript,这样就可以按照错误中的建议安装特定版本的typescript

npm install typescript@ version
或者你可以跑

npm install typescript@ version --save-dev

为了将其保存在json包中,我在Angular 9中也遇到了这个问题,但版本号不同

角度编译器中的错误要求TypeScript>=3.6.4,并且您有两个选项:

1-自动: 这将安装正确的版本

npm install typescript@">=3.4.0 and <3.5.0" --save-dev
Angular 10
npm安装类型脚本@“~3.8.0”--保存开发人员

Angular 9
npm安装类型脚本@“~3.7.0”--保存开发人员

Angular 8
npm安装typescript@“~3.4.0”--保存开发人员

Angular 7
npm安装类型脚本@“~3.1.0”--保存开发人员

然后运行:

npm install 

使用这个命令对我来说很有用谢谢

npm i typescript@">=3.6.4 <3.8.0"
npm i typescript@“>=3.6.4而不是
“typescript”:“^3.4.5”
devDependencies
下,在
package.json
文件中输入
“typescript”:“~3.4.5”
并保存文件,然后再次运行npm install。它对我很有用。

使用角度11

npm i -D typescript@4.0.5

如果要将angular项目升级到angular 11

npm install typescript@">=4.0.0 and <4.2.0" --save-dev

在我的例子中,当从角度10迁移到角度11时,我收到了这个错误

An unhandled exception occurred: The Angular Compiler requires TypeScript >=4.0.0 and <4.2.0 but 4. 2.3 was found instead.

发生未处理的异常:Angular编译器要求TypeScript>=4.0.0和当我遇到类似错误时,我运行:

yarn clean cache
如果您使用npm,您可以尝试运行:

npm clean cache

我不确定这是一个100%的解决方案,但我希望它能帮助某些人。

我必须删除节点模块并重新安装npm吗?嗯。。您可以尝试第一步,即运行
npmi--save devtypescript@3.4.5
,然后查看它是否解决了问题。如果不起作用,可以尝试第二种方法删除插入符号
^
。根据您的建议,我认为您可以通过删除整个文件夹或运行
rm-r node_modules
,然后重新安装来删除node_模块
"devDependencies": {
  ...
  "typescript": "~3.4.0"
}
"devDependencies": {
  ...
  "typescript": "~3.1.0"
}
npm install 
npm i typescript@">=3.6.4 <3.8.0"
npm i -D typescript@4.0.5
npm install typescript@">=4.0.0 and <4.2.0" --save-dev
"devDependencies": {
      ...
      "typescript": "^4.1.5"
 }
An unhandled exception occurred: The Angular Compiler requires TypeScript >=4.0.0 and <4.2.0 but 4. 2.3 was found instead.
npm install typescript@'>==4.0.0 <4.2.0'
yarn clean cache
npm clean cache