2016-06-05 18 views
3

Ich konnte ein Polyfill (on Stapelüberlauf) für Array # includes finden und es zu typescript hinzufügen, aber nach dem Hinzufügen eines kleinen Imports zu meiner Datei wurde es zu einem Modul (Ich verstehe, warum sie dies für den Export tun, aber warum beim Import) und ich konnte den globalen Namespace nicht mehr ändern.Wie fügen Sie Polyfills zu Globals in Typoskript (Module)

Wie repariere ich das Polyfill?


interface Array<T> { 
    includes(searchElement: T) : boolean; 
} 

// Add Array includes polyfill if needed 
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes#Polyfill 
if (!Array.prototype.includes) { 
    Array.prototype.includes = function(searchElement /*, fromIndex*/) { 
     'use strict'; 
     var O = Object(this); 
     var len = parseInt(O.length, 10) || 0; 
     if (len === 0) { 
      return false; 
     } 
     var n = parseInt(arguments[1], 10) || 0; 
     var k; 
     if (n >= 0) { 
      k = n; 
     } else { 
      k = len + n; 
      if (k < 0) {k = 0;} 
     } 
     var currentElement; 
     while (k < len) { 
      currentElement = O[k]; 
      if (searchElement === currentElement) { // NaN !== NaN 
       return true; 
      } 
      k++; 
     } 
     return false; 
    }; 
} 

Antwort