我可以使用最新的稳定 TypeScript 还是应该坚持使用 AngularCLI 附带的版本?

Posted

技术标签:

【中文标题】我可以使用最新的稳定 TypeScript 还是应该坚持使用 AngularCLI 附带的版本?【英文标题】:Can I use latest stable TypeScript or should I stick with the version shipped with AngularCLI? 【发布时间】:2018-02-10 21:49:54 【问题描述】:

我找不到任何关于是否使用可用的最新稳定版本升级 TypeScript 版本的官方建议。

创建新项目时,AngularCLI 会在package.json 中自动设置 npm 版本。目前是:

"typescript": "~2.4.2"

表示最新的2.4.x 版本。我想知道是否可以使用最新的稳定 TypeScript 版本(以及会产生什么影响),例如 2.5.x

设置~2.4.2 而不是"^2.4.2 是否有特定原因(这意味着最新的2.x.x 版本)。

【问题讨论】:

您是否考虑过使用较新版本运行测试以找出答案?您希望使用哪些新功能? 是的,就我而言,所有测试都通过了,不需要特定的新功能 【参考方案1】:

2021 年更新: 签出这个答案Is there a compatibility list for Angular / Angular-CLI and Node.js?


原始答案: Angular cli 可能并不总是支持最新版本的 TypeScript。 有一些与此相关的问题和 PR:

Support TypeScript 2.4+ Typescript 2.4 support feat(@angular/cli): support TypeScript 2.4

另外请记住,最新的 TypeScript 版本可能与您的 Angular 版本不兼容。

如果您想跳到新的/最新的 TypeScript 版本 - 风险自负。一旦你这样做了,你必须确保它不会破坏任何东西,比如测试(ng t)、产品构建(ng build --prod)等。

如果您坚持使用默认的 cli TypeScript 版本,那么您是安全的。

2017 年 9 月 9 日更新:对于关心使用带有最新 TypeScript 的 cli 的任何人,请查看最近的 github issue 和这个特别的 comment,因为在最新版本中引入了 TypeScript version warning logic cli 1.4。 Here is what是基于(angular cli团队推荐):

 const versionCombos = [
       compiler: '>=2.3.1 <3.0.0', typescript: '>=2.0.2 <2.3.0' ,
       compiler: '>=4.0.0 <5.0.0', typescript: '>=2.1.0 <2.4.0' ,
       compiler: '>=5.0.0 <6.0.0', typescript: '>=2.4.0 <2.6.0' 
    ];

【讨论】:

【参考方案2】:

是的,您可以更改/更新,但请确保您关注每个版本以获得支持和更新。每个版本都会改​​变。

我使用最新的打字稿版本,到目前为止从未遇到过问题。

更新:

由于 Angular 1.4 angular-cli 在服务、构建和版本检查时报告所需的打字稿版本

例子:

@angular/compiler-cli@4.3.6 需要 typescript@'>=2.1.0

请运行以下命令安装兼容版本的 TypeScript。

npm install typescript@'>=2.1.0 <2.4.0'

要禁用此警告,请运行“ng set --global warnings.typescriptMismatch=false”。

【讨论】:

对不起。我正要提到版本【参考方案3】:

当您收到此消息时,在终端或命令提示符中键入以下命令 (请运行以下命令来安装兼容版本的 TypeScript。) (npm install typescript@'>=2.1.0

npm install -g typescript

【讨论】:

以上是关于我可以使用最新的稳定 TypeScript 还是应该坚持使用 AngularCLI 附带的版本?的主要内容,如果未能解决你的问题,请参考以下文章

有哪些前端框架是使用typescript写的?

VS2015 - 更改 TypeScript 版本

Google员工吐槽TypeScript:类型检查不太好

最新的 preact 和 typescript 模块传递了错误的类型

新集群中的重新索引数据应使用最新的时间戳更新

使用 Angular 和 TypeScript 使用最新 NativeScript 中的参数进行导航