Javascript TSC:目标ES3兼容性标志做什么?
我安装了typescript npm软件包:Javascript TSC:目标ES3兼容性标志做什么?,javascript,typescript,compatibility,tsc,ecmascript-3,Javascript,Typescript,Compatibility,Tsc,Ecmascript 3,我安装了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]; -tes
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];
-tes3
标志不应该考虑这些兼容性方面吗?像-es5
、ES3
等标志确实考虑支持将高级TS/ES6功能转换为以前版本的JavaScript(例如,使用)中的等效功能(如果可能)
但是,document.querySelector
不是ECMAScript标准的一部分。它是DOM API的一部分,被TypeScript忽略。transpiler并不试图提供浏览器兼容性,而是提供语言兼容性。您可能会发现垫片说它们用于特定的ECMAScript版本,这些版本将API垫片卷入其中,但这是一个误解,因为它们并不完全相同
对于TypeScript,您仍然需要为缺少的特定于浏览器的DOM功能使用垫片。像
-es5
、es3
等标志确实需要在以前的JavaScript版本(例如,使用)中支持将高级TS/ES6功能转换为其等效功能(如果可能)
但是,document.querySelector
不是ECMAScript标准的一部分。它是DOM API的一部分,被TypeScript忽略。transpiler并不试图提供浏览器兼容性,而是提供语言兼容性。您可能会发现垫片说它们用于特定的ECMAScript版本,这些版本将API垫片卷入其中,但这是一个误解,因为它们并不完全相同
对于TypeScript,您仍然需要使用垫片来填充缺少的特定于浏览器的DOM功能。JavaScript和DOM API是分开的,所以不。JavaScript和DOM API是分开的,所以不。应该指出,在传输中也不支持ES5。因此,在使用ES3选项时,不支持
Array.prototype.reduce
或对象getter/setter。应该指出的是,传输中也不支持ES5。因此,在使用ES3选项时,不支持Array.prototype.reduce
或对象getter/setter。