Angular 2.0:Typescript 是不是支持 ES6 的所有特性?

Posted

技术标签:

【中文标题】Angular 2.0:Typescript 是不是支持 ES6 的所有特性?【英文标题】:Angular 2.0 : Does Typescript support all the features of ES6?Angular 2.0:Typescript 是否支持 ES6 的所有特性? 【发布时间】:2016-04-30 08:23:19 【问题描述】:

Typescript 一开始就声称它是 javascript 的超集。现在 ES6 指日可待。当前的 typescript 转译器/编译器是否支持所有 es6 功能和语法,还是在模块导出/导入、箭头函数等语法方面偏离 es6?

我之所以问,是因为我正在尝试学习 Angular 2.0,但无法决定是遵循 typescript 路径还是 vanilla JS 路径。

【问题讨论】:

这听起来很像Which ES6 features are implemented in Typescript?的反面 它doesn't seem to support let in loop bodies,例如。 【参考方案1】:

关于功能,请参阅What's new in TypeScript 和Roadmap。 (似乎没有任何页面直接将 ES6/ES2015 功能与 TypeScript 进行比较。请参阅@alexpod 的答案。)

如果没有别的原因,我建议你使用 TypeScript 来进行额外的类型检查。当 Angular 将他们的代码转换为 TypeScript 时,它暴露了许多错误。

TypeScript 的主要目的不是为 JavaScript 添加特性——这也是 ES2015 的目的——而是让开发人员更容易、更安全地编写和维护大型 JavaScript 应用程序。 TypeScript 的主要优势在您的应用程序运行之前就显现出来了——当您编写或维护代码时。 Intellisense、代码补全、类型检查等。

【讨论】:

您提到了“智能感知、代码完成、类型检查等”。我如何使用这些功能。它们是自带打字稿还是我需要为此使用 Visual Studio? @jackOfAll,您需要使用支持 TypeScript 的编辑器,请参阅this list。【参考方案2】:

看看this table。它将向您展示目前支持的打字稿和其他转译器/环境。

【讨论】:

【参考方案3】:

在Mark's answer 之上,我应该补充一点,TypeScript 和其他转译器现在允许您使用多个 ES6 功能。我不会梦想在今天(2017 年初)推出一个完全使用 ES6 构建的面向公众的网站,因为旧浏览器不会轻易死去。 TypeScript 完全消除了这种抑制,并添加了一些自己的创新。

【讨论】:

这个答案很好,因为转译器一般都是如此,他们现在消除了使用新功能的障碍,并且仍然支持旧浏览器

以上是关于Angular 2.0:Typescript 是不是支持 ES6 的所有特性?的主要内容,如果未能解决你的问题,请参考以下文章

“Angular 2.0 for TypeScript”(alpha)动画是如何工作的?

Angular Starter Kit —— Angular 2.0 迁移准备工具 (TypeScript)

ng2-ckeditor 使用 typescript 和 angular 2.0 添加占位符插件

Angular 2 / Typescript - 如何检查对象数组以查看属性是不是具有相同的值?

没有 Angular 或 React 的 TypeScript/HTML/CSS 项目是不是可以使用 Firebase 存储连接

AngularJS 2.0入门指南