1

我安装了 typescript npm 包:

npm install typescript

跑了

node_modules\.bin\tsc doodle.ts -t ES3

哪里doodle.ts有:

var test = document.querySelector('.test');

它在 output 中回显了相同的内容doodle.js

如何在输出中配置它,我得到:

var test = document.getElementsByClassName('.test')[0];

标志不-t ES3应该照顾这些兼容性方面吗?

4

1 回答 1

4

-es5,es3等标志确实负责支持将高级 TS/ES6 功能转译成它们在早期版本的 JavaScript 中的等价物(如果可能)(例如,使用for..off)。

但是,document.querySelector它不是 ECMAScript 标准的一部分。它是 DOM API 的一部分,被 TypeScript 忽略。转译器不是试图提供浏览器兼容性,而是提供语言兼容性。您可能会发现 shims 说它们适用于特定的 ECMAScript 版本,其中包含 API shims,但这是一种误解,因为它们并不完全相同。

使用 TypeScript,您仍然需要使用 shims 来弥补特定于浏览器的 DOM 功能缺失。

于 2015-04-25T14:43:28.897 回答