Array.from 是ES6功能。当我在TypeScript中使用它并编译到ES5目标时,它不会改变它:
tsc -t es5 prog.ts
也就是说,当我在prog.js内部查看时,我仍然在同一位置看到Array.from。在IE11中使用prog.js会抱怨如下:
对象不支持属性或方法"from"
为什么TypeScript不将Array.从转换为一些ES5替代方案?
有没有办法把它设置成这样?
我建议使用core-js
,因为您将获得更多的polyfill,并且不必逐段polyfill API。如果您所需要/想要的只是Array.from
,那么可以从MDN站点中提取它,但您可以使用core-js
选择性地仅导入所需的polyfill。
使用npm安装core-js
。。。
> npm install --save core-js
那么在你的.ts
。。。
import 'core-js' // to get the whole thing
或
import 'core-js/es/array'; // to get just array polyfills for example
这是一个可以polyfill的方法。
无法polyfill的语言功能将被transpile(如果可能的话,在选定的TypeScript目标上)。
Array.from
在TypeScript v1.8中还不存在,因此编译程序保留这部分代码。
根据这个链接,IE上不支持Array.from
,所以你必须实现一个polyfill(请参阅链接,polyfill在中)。