Налаштування:
Якщо ви використовуєте код VS (або ви бачите tsconfig.jsonфайл):
Ви повинні додати libвластивість до свого, tsconfig.jsonі тоді ваш редактор використовуватиме комплектні визначення типів сценарію, а також дасть вам інтелігенцію.
Просто додайте "lib": ["esnext", "dom"]свій tsconfig.jsonкод і перезапустіть код VS
{
"compilerOptions": {
// ...
"target": "es5",
"lib": ["esnext", "dom"]
// ...
}
}
Дивіться всі tsconfig.jsonваріанти тут .
Якщо ви використовуєте Visual Studio або MSBuild, включіть цей тег:
<TypeScriptLib>esnext, dom</TypeScriptLib>
Переглянути всі параметри компілятора MSBuild-компіляторів та використання тут .
Перевірте свою роботу:
Якщо ви налаштували ваш проект на використання вбудованих типів і перезапустили редактор, то ваш отриманий тип буде виглядати таким чином, а не типом, який anyви використовуєте Object.assign:

Примітка про сумісність полів та старіші веб-переглядачі:
Зауважте, що якщо ви перекладаєте на ES5 або нижче та націляєте на IE11, вам потрібно буде включити polyfills, оскільки компілятор машинопису не буде включати поліфлі для вас.
Якщо ви хочете включити поліфіли (які ви повинні), то я рекомендую використовувати полі-заповнення core-js.
npm install --save core-js
або
yarn add core-js
Потім у точку входу у вашій програмі (наприклад /src/index.ts) додайте імпорт core-jsу верхній частині файлу:
import 'core-js';
Якщо ви не використовуєте менеджер пакунків, ви можете просто вставити наступний поліфайл, узятий з MDN, десь у вашому коді, який працює до використання 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
});
}