Skonfiguruj:
Jeśli używasz kodu VS (lub jeśli widzisz tsconfig.jsonplik):
Powinieneś dodać tę libwłaściwość do swojego, tsconfig.jsona wtedy twój edytor użyje dołączonych definicji typów maszynopisu, a także zapewni ci inteligencję.
Po prostu dodaj "lib": ["esnext", "dom"]do swojego tsconfig.jsoni uruchom ponownie VS Code
{
"compilerOptions": {
"target": "es5",
"lib": ["esnext", "dom"]
}
}
Zobacz wszystkie tsconfig.jsonopcje tutaj .
Jeśli używasz programu Visual Studio lub MSBuild, dołącz ten tag:
<TypeScriptLib>esnext, dom</TypeScriptLib>
Zobacz wszystkie opcje kompilatora MSBuild i użycie tutaj .
Sprawdź swoją pracę:
Jeśli skonfigurowałeś projekt do korzystania z typów wbudowanych i zrestartowałeś edytor, wynikowy typ będzie wyglądał następująco, a nie typem, anygdy używasz Object.assign:

Uwaga dotycząca wypełniaczy i zgodności ze starszymi przeglądarkami:
Zauważ, że jeśli transpilujesz do ES5 lub niższej i kierujesz się na IE11, będziesz musiał dołączyć polyfills, ponieważ kompilator maszynopisu nie będzie zawierał polyfillów.
Jeśli chcesz dołączyć polyfills (co powinieneś), polecam użycie polyfills core-js.
npm install --save core-js
lub
yarn add core-js
Następnie w punkcie wejścia w aplikacji (np. /src/index.ts) Dodaj import dla core-jsna górze pliku:
import 'core-js';
Jeśli nie używasz menedżera pakietów, możesz po prostu wkleić następujący wypełniacz pobrany z MDN w dowolnym miejscu w kodzie, który jest uruchamiany przed użyciem Object.assign.
if (typeof Object.assign != 'function') {
Object.defineProperty(Object, "assign", {
value: function assign(target, varArgs) {
'use strict';
if (target == 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) {
for (var nextKey in nextSource) {
if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
to[nextKey] = nextSource[nextKey];
}
}
}
}
return to;
},
writable: true,
configurable: true
});
}