2016-04-14 55 views
4

Array.from是一个ES6功能。当我在打字稿使用它,并编译成目标ES5也不会改变它:typecript IE11中的Array.from

tsc -t es5 prog.ts 

即当我看到里面prog.js我仍然看到Array.from在同一个地方。在IE11使用prog.js抱怨如下:

对象不“从”

支持属性或方法为什么不打字稿转换Array.from在一些ES5替代?

有没有办法设置它,所以它呢?

+0

它是一种方法,其可polyfilled。不能被填充的语言特征将被转译。 – estus

+0

我明白了。我不知道。我期望transpiling将所有代码转换为一些ES5 equivilant。但是,是的,它可以很容易地被填充。谢谢。发表一个答案,我会接受 – chriskelly

回答

3

这是一种方法,可以是polyfilled

无法多重填充的语言功能被转发(如果可能的话,在选定的TypeScript目标上)。

2

Array.from尚未存在于TypeScript v1.8中,因此编译器保留原来的这部分代码。

根据这linkArray.from是不支持在IE浏览器,所以你必须实现一个polyfill(请参阅链接,polyfill在)。

+1

感谢Guillaume。这为我清除了很多。 – chriskelly

7

我会推荐使用core-js,因为你会得到更多的polyfill,并且不必逐段填充API。如果你需要/想要的是Array.from,那么通过一切手段将它从MDN网站上撕掉,但是你可以选择性地只使用core-js导入你需要的polyfills。

使用npm安装core-js ...

> npm install --save core-js 

...然后在.ts ...

import 'core-js' // to get the whole thing 

import 'core-js/es-6/array'; // to get just array polyfills for example 
+1

谢谢。你的小费帮了我很多。 BTW:实际上,它是'import'core-js/es6/array';' –