我安装了打字稿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
标志不应该照顾这些兼容性方面吗? 最佳答案
像-es5
,es3
等标记确实确实在支持将高级TS / ES6功能转译为JavaScript的早期版本(例如,使用for..off)中的等效功能(如果可能)。
但是,document.querySelector
不是ECMAScript标准的一部分。它是DOM API的一部分,被TypeScript忽略。编译器不尝试提供浏览器兼容性,而是提供语言兼容性。您可能会发现垫片,说明它们是针对特定的ECMAScript版本的,这些版本将API垫片插入其中,但这是一个误解,因为它们并不完全相同。
使用TypeScript,对于缺少特定于浏览器的DOM功能,您仍然需要使用垫片。