我安装了打字稿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标志不应该照顾这些兼容性方面吗?

最佳答案

-es5es3等标记确实确实在支持将高级TS / ES6功能转译为JavaScript的早期版本(例如,使用for..off)中的等效功能(如果可能)。

但是,document.querySelector不是ECMAScript标准的一部分。它是DOM API的一部分,被TypeScript忽略。编译器不尝试提供浏览器兼容性,而是提供语言兼容性。您可能会发现垫片,说明它们是针对特定的ECMAScript版本的,这些版本将API垫片插入其中,但这是一个误解,因为它们并不完全相同。

使用TypeScript,对于缺少特定于浏览器的DOM功能,您仍然需要使用垫片。

10-08 16:32