2016-04-14 36 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';' –