TSC:--target ES3 兼容性标志有什么作用?

TSC: what does --target ES3 compatibility flag do?

我安装了 typescript npm 包:

npm install typescript

和运行

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

其中 doodle.ts 有:

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

它在输出中回显相同 doodle.js

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

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

-t ES3 flag 不应该处理这些兼容性问题吗?

-es5es3 等标志确实负责支持将高级 TS/ES6 功能转换为 [=27= 以前版本中的等效功能(如果可能) ](例如,for..off)。

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

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