现代浏览器中的TypeScript支持


70

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

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

  2. 主要的浏览器供应商对于TypeScript本身的未来支持持何立场?

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

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


1
也许这个问题可以使用一些简化,但它仍然明显,核心的问题是,一个简单的谷歌搜索将不会(现在)与浏览器的列表,打字稿的支持哪些版本,返回一个页面本身
石英

2
解决该问题的原因根本没有道理。这是一个非常有效的问题,它将对尝试学习打字稿的任何人有所帮助。对于初学者来说,它总是令人困惑,并且通常会误以为TypeScript是在浏览器中评估并运行的,因为它被称为javascript的超级脚本。好吧,这是不同的意思,所以其中一些问题有助于阐明这些构成
要素的

1
这是一个很好的问题,似乎人们还没有答案。我可以预见一个未来,所有主要的浏览器都可以在网页和控制台中实时地将最新的RFC标准TypeScript直接编译为Web程序集字节码。在此之前,我个人真的希望避免使用TypeScript工具浪费所有的时间和精力。
沙威

Answers:


11

本机支持

可以很容易地添加本机支持,例如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版本,例如类字段和类中的静态属性。


82
这显然是Artem的意思。浏览器中对TypeScript的支持意味着您可以在浏览器加载的页面中直接使用TypeScript。
Ondra参观Žižka

32
相当。不知道堆栈的书呆子们为这个问题解决了什么,很明显,OP在问什么,这个答案没有提供答案。
中微子

4
问题是“现代浏览器对NATIVE TypeScript的支持状况如何”
orszaczky

6
NATIVE我回答后加了。并由不是OP的人添加:imgur.com/a/haFrB
basarat

11
为什么“ TypeScript不应该在本地运行”?“ Typescript编译为JS,因此所有浏览器都支持它”。
查理

7

Google试图使用Dart来设计一次可以本地支持多种语言的网络浏览器。Chrome计划使用Dart引擎,但这最终导致任务繁重,除了“不使用Java脚本”之外,几乎没有任何好处。

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


1
我认为这同样令人生畏。似乎可以通过添加到现有的JS解析器中来解析语言,然后简单地剥离特定于TS的语法,然后在V8上运行生成的代码来实现对TS的支持,这可能是因为TS是JS的超集。Dart是一种完全不同的语言,需要自己的AST和VM。
特伦特·宾

4

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


1

目前它不起作用,但这是一个有趣的话题。最好知道ECMAScript是否会支持接口,类型和其他东西。特别是,我注意到ES实际上从TypeScript中慢慢吸收了一些部分,例如枚举。

如果可以的话,我宁愿将它看作是ECMAScript,它从TypeScript那里获取了一些东西,而不是本地支持TypeScript本身。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.