Configurer:
Si vous utilisez du code VS (ou si vous voyez un tsconfig.jsonfichier):
Vous devez ajouter la libpropriété à votre tsconfig.json, puis votre éditeur utilisera les définitions de type dactylographiées fournies et vous donnera également intellisense.
Ajoutez simplement le "lib": ["esnext", "dom"]à votre tsconfig.jsoncode VS et redémarrez-le
{
"compilerOptions": {
// ...
"target": "es5",
"lib": ["esnext", "dom"]
// ...
}
}
Voir toutes les tsconfig.jsonoptions ici .
Si vous utilisez Visual Studio ou MSBuild, incluez cette balise:
<TypeScriptLib>esnext, dom</TypeScriptLib>
Voir toutes les options et l'utilisation du compilateur MSBuild typescript ici .
Vérifie ton travail:
Si vous avez configuré votre projet pour utiliser les types intégrés et redémarré votre éditeur, votre type résultant ressemblera à ceci au lieu du type anylorsque vous utilisez Object.assign:

Remarque sur les polyfills et la compatibilité des anciens navigateurs:
Notez que si vous transpilez vers ES5 ou une version antérieure et ciblez IE11, vous devrez inclure des polyfills car le compilateur dactylographié n'inclura pas les polyfills pour vous.
Si vous souhaitez inclure les polyfills (ce que vous devriez), je vous recommande d'utiliser les polyfills de core-js.
npm install --save core-js
ou
yarn add core-js
Ensuite, dans le point d'entrée de votre application (par exemple /src/index.ts), ajoutez l'importation pour core-jsen haut du fichier:
import 'core-js';
Si vous n'utilisez pas de gestionnaire de packages, vous pouvez simplement coller le polyfill suivant extrait de MDN à un endroit de votre code qui s'exécute avant votre utilisation de 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
});
}