现代浏览器中的TypeScript支持

Art*_*iuk 50 javascript typescript ecmascript-6

我刚刚阅读了一些与TypeScript相关的广告信息,此外我还没有使用过这个JavaScript超集的经验.所以我有一些基本问题:

  1. 现代浏览器支持本机TypeScript的状态是什么?
  2. 主要浏览器供应商对未来TypeScript支持的立场是什么?
  3. TypeScript和ECMAScript6之间的关系是什么?TypeScript是否提供了比ECMAScript6更多的功能?

随意回答所有问题或问题的子集.谢谢.

mat*_*hew 12

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

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

  • 我认为这不会同样令人畏惧。看来 TS 支持可以通过添加到现有的 JS 解析器来解析语言,然后简单地去掉 TS 特定的语法,并在 V8 上运行生成的代码来实现,这是可能的,因为 TS 是 JS 的超集。Dart 是一种完全不同的语言,需要自己的 AST 和 VM。 (5认同)
  • 我并不是说它必须实现任何类型的运行时类型检查。毕竟,TS 也不在运行时进行类型检查。例如,当浏览器看到“type Foo = string |”时 int`,它可能只是说“哦,这是一个类型声明。让我们忽略它。”。然后,当它看到 `let foo: Foo = 1` 时,它可以选择忽略 `: Foo` 部分。完全有效的 JS。它与 Dart 有很大不同,因为 Dart 实际上是在运行时进行类型检查的。 (2认同)

bas*_*rat 6

本机支持

TypeScript不应本机运行。也就是说,这非常容易,例如https://github.com/basarat/typescript-script添加了对脚本标签的支持(尽管这为页面增加了6MB的支持JS)。

浏览器供应商不会添加此类支持(并且不应该)。浏览器运行的JavaScript和TypeScript可以即时进行转译

非本地支持

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

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

主要浏览器供应商对TypeScript的未来支持持何立场?

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

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

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

  • 这显然是Artem的意思。浏览器中对TypeScript的支持意味着您可以在浏览器加载的页面中直接使用TypeScript。 (71认同)
  • 相当。不知道堆栈的书呆子们为这个问题解决了什么,很明显,OP在问什么,这个答案没有提供答案。 (24认同)
  • 为什么“ TypeScript不应该在本地运行”?“ Typescript编译为JS,因此所有浏览器都支持它”。 (9认同)
  • 问题是“现代浏览器对NATIVE TypeScript的支持状况如何” (4认同)
  • 我回答后添加了“ NATIVE”。并由不是OP的人添加:https://imgur.com/a/haFrB (3认同)
  • 我已经更新了“本地”支持的答案 (2认同)

小智 5

无法在任何浏览器中运行或理解打字稿。因此,Typescript 被编译为 Javascript(浏览器可以理解)。Typescript 可以使用所有 ES6 特性,并且在编译过程中它们将被转换为像 ES5 这样的 Target 编译选项。