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 不应该处理这些兼容性问题吗?
-es5
、es3
等标志确实负责支持将高级 TS/ES6 功能转换为 [=27= 以前版本中的等效功能(如果可能) ](例如,for..off)。
但是,document.querySelector
不是 ECMAScript 标准的一部分。它是 DOM API 的一部分,被 TypeScript 忽略。转译器并没有尝试提供浏览器兼容性,而是 language 兼容性。您可能会发现垫片说它们适用于特定的 ECMAScript 版本,将 API 垫片放入其中,但这是一种误解,因为它们并不完全相同。
使用 TypeScript,您仍然需要使用垫片来弥补 DOM 特定于浏览器的功能。
我安装了 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 不应该处理这些兼容性问题吗?
-es5
、es3
等标志确实负责支持将高级 TS/ES6 功能转换为 [=27= 以前版本中的等效功能(如果可能) ](例如,for..off)。
但是,document.querySelector
不是 ECMAScript 标准的一部分。它是 DOM API 的一部分,被 TypeScript 忽略。转译器并没有尝试提供浏览器兼容性,而是 language 兼容性。您可能会发现垫片说它们适用于特定的 ECMAScript 版本,将 API 垫片放入其中,但这是一种误解,因为它们并不完全相同。
使用 TypeScript,您仍然需要使用垫片来弥补 DOM 特定于浏览器的功能。