Konfigurieren:
Wenn Sie VS-Code verwenden (oder wenn Sie eine tsconfig.jsonDatei sehen):
Sie sollten die libEigenschaft zu Ihrer hinzufügen , tsconfig.jsonund dann verwendet Ihr Editor die gebündelten Typoskript-Typdefinitionen und gibt Ihnen auch Intellisense.
Fügen Sie einfach den "lib": ["esnext", "dom"]zu Ihrem hinzu tsconfig.jsonund starten Sie VS Code neu
{
"compilerOptions": {
// ...
"target": "es5",
"lib": ["esnext", "dom"]
// ...
}
}
Alle tsconfig.jsonOptionen finden Sie hier .
Wenn Sie Visual Studio oder MSBuild verwenden, fügen Sie dieses Tag hinzu:
<TypeScriptLib>esnext, dom</TypeScriptLib>
Alle MSBuild Typoskript Compiler - Optionen und die Verwendung hier .
Überprüfe deine Arbeit:
Wenn Sie Ihr Projekt für die Verwendung der integrierten Typen konfiguriert und Ihren Editor neu gestartet haben, sieht der resultierende Typ wie folgt aus, anstatt des Typs, den anySie verwenden Object.assign:

Hinweis zu Polyfills und der Kompatibilität älterer Browser:
Beachten Sie, dass Sie Polyfills einschließen müssen, wenn Sie auf ES5 oder niedriger transpilieren und auf IE11 abzielen, da der Typoskript-Compiler die Polyfills für Sie nicht enthält.
Wenn Sie die Polyfills einschließen möchten (was Sie sollten), würde ich empfehlen, die Polyfills von core-js zu verwenden.
npm install --save core-js
oder
yarn add core-js
Fügen Sie dann am Einstiegspunkt in Ihrer App (z. B. /src/index.ts) den Import für core-jsoben in der Datei hinzu:
import 'core-js';
Wenn Sie keinen Paketmanager verwenden, können Sie die folgende aus MDN entnommene Polyfüllung einfach an einer Stelle in Ihren Code einfügen, die vor Ihrer Verwendung von ausgeführt wird Object.assign.
if (typeof Object.assign != 'function') {
// Must be writable: true, enumerable: false, configurable: true
Object.defineProperty(Object, "assign", {
value: function assign(target, varArgs) { // .length of function is 2
'use strict';
if (target == null) { // TypeError if undefined or null
throw new TypeError('Cannot convert undefined or null to object');
}
var to = Object(target);
for (var index = 1; index < arguments.length; index++) {
var nextSource = arguments[index];
if (nextSource != null) { // Skip over if undefined or null
for (var nextKey in nextSource) {
// Avoid bugs when hasOwnProperty is shadowed
if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
to[nextKey] = nextSource[nextKey];
}
}
}
}
return to;
},
writable: true,
configurable: true
});
}