88

我刚刚阅读了一些与 TypeScript 相关的广告信息,除此之外,我对这个 JavaScript 超集没有经验。所以我有一些基本的问题:

  1. 现代浏览器对原生 TypeScript 的支持情况如何?

  2. 各大浏览器厂商对于未来原生支持 TypeScript 的立场是什么?

  3. TypeScript 和 ECMAScript6 之间有什么关系,TypeScript 提供的功能是否比 ECMAScript6 多得多?

随意回答所有或部分问题。

4

5 回答 5

18

原生支持

可以很容易地添加本机支持,例如https://github.com/basarat/typescript-script添加对脚本标签的支持(尽管这会为页面添加 6MB 的支持 JS)。但是,将 TypeScript 编译为 JavaScript 会降低性能,为了获得最佳性能,最好在浏览器中预编译和执行编译后的 JavaScript。

浏览器供应商没有计划添加原生 TypeScript 支持。浏览器中唯一通用的原生语言是 JavaScript 和 WebAssembly。TypeScript 可以被转译为任何一种并在浏览器中运行,因此它不是一个阻止程序。

非本地支持

现代浏览器对 TypeScript 的支持情况如何?

Typescript 编译为 JS,因此所有浏览器(甚至 IE6)都支持它

各大浏览器厂商对于 TypeScript 未来的支持有何立场?

无需代表浏览器供应商进行任何工作。

TypeScript 和 ECMAScript6 之间有什么关系,TypeScript 提供的功能是否比 ECMAScript6 多得多?

是的,例如来自未来的 javascript 版本,例如类字段和类中的静态属性。

于 2014-04-06T00:44:47.730 回答
12

尝试设计一个可以同时原生支持多种语言的网络浏览器正是谷歌试图用 Dart 做的事情。为 Chrome 计划了一个 Dart 引擎,但这最终成为一项太大的任务,除了“只是不使用 java 脚本”之外几乎没有什么好处。

我怀疑原生支持 Typescript 将是一项同样艰巨的任务。改进 ECMAScript 并在有意义的地方添加一些 TS 想法可能会更好。不过我确实喜欢TS。

于 2019-10-08T19:07:17.660 回答
5

Typescript 无法在任何浏览器中运行或理解。因此,Typescript 被编译为 Javascript(浏览器可以理解)。Typescript 可以使用所有 ES6 功能,并且在编译期间它们将被转换为 ES5 等目标编译选项。

于 2019-04-11T19:40:20.457 回答
3

目前它不起作用,但这是一个有趣的话题。很高兴知道 ECMAScript 是否会在某个时候支持接口、类型和其他东西。特别是,我注意到 ES 实际上从 TypeScript 中缓慢地获取了一些部分,例如枚举。

如果它可以工作,我宁愿将它视为 ECMAScript 从 TypeScript 中获取一些东西,而不是原生支持 TypeScript 本身。

于 2019-06-04T14:25:46.837 回答
0

我知道它目前不受支持,也没有计划在浏览器中原生支持 TypeScript,但前端(javascript)生态系统中的工具存在一个巨大的(在我看来)问题——它太多了。捆绑、模块解析、转译等。我认为这会使开发变得更慢,因为存在很多配置问题、版本不匹配、兼容性和很多晦涩难懂的问题(stackoverflow 和 github 充满了此类主题),这些问题源于工具,而不是实现功能。我会称之为危机,但这种情况已经有一段时间了,我知道这就是现在的做事方式。

我认为有几件事需要发生。

  1. 我们需要能够在浏览器中使用原生 ES6 模块(导入/导出)。我知道它受支持,但只有相对或 url 导入有效。我知道有关于“导入地图”或其他名称的工作。
  2. 如果浏览器(chrome)可以读取 TS 代码,那就太好了。不必解释或强制执行任何输入 - 本质上将其视为 javascript,并带有一些浏览器忽略的额外废话。它可能只是浏览器中的“开发者模式”,但我们可以在开发过程中实现 0-transpilation。
  3. 简化急切的资源加载(避免捆绑)

同样,这只是为了发展利益。我知道很多这些工具在生产构建、旧浏览器支持等方面都有它们的位置。

于 2022-02-10T11:47:59.430 回答