Wie fügen Sie polyfills zu Globals in Typoskript (Module)
War ich in der Lage zu finden, ein polyfill(auf stack overflow) for Array#enthält, und fügen Sie es Maschinenschrift, aber nach dem hinzufügen eines kleinen import meiner Datei, es verwandelt sich in ein Modul(ich verstehe, warum Sie dies für den export, aber warum für die Einfuhr) und ich konnte es nicht ändern Sie den globalen Namensraum nicht mehr.
Wie behebe 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;
};
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie deklarieren es in der
global
namespace:Mehr
Erweitern lib.d....ts wird hier besprochen : https://basarat.gitbooks.io/typescript/content/docs/types/lib.d.ts.html ?
Neben dem hinzufügen einer Erklärung, müssen Sie diese polyfill in Ihrem code. Eine Möglichkeit, dies zu tun ist durch den Import der Datei mit poylfill Deklaration und Implementierung in der entry-point-Modul der Anwendung, solange Sie polyfilling core-Objekte und wollen, dass Sie immer und überall verfügbar in Ihrem app (vorausgesetzt, Sie haben Ihre polyfills in
./polyfill/arrayIncludes.ts
) wie folgt: