当打字稿编译Javascript时,它会在顶部添加此功能
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import { PortWidget } from "storm-react-diagrams";
所以我得到了错误
第14行:导入模块主体;重新排序到顶部导入/第一
这是我的tsconfig.json
{
"compilerOptions": {
"target": "es5",
"lib": [
"es6",
"dom"
],
"sourceMap": false,
"allowJs": true,
"jsx": "preserve",
"noImplicitReturns": false,
"noImplicitThis": false,
"noImplicitAny": false,
"strictNullChecks": false,
"skipLibCheck": true,
"strict": false,
"suppressImplicitAnyIndexErrors": true,
"noUnusedLocals": false,
"watch": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
// "resolveJsonModule": true,
//"noEmit": true,
"isolatedModules": true
},
"exclude": [
"node_modules",
"build",
"desktop",
"public",
"mobile",
"tests",
"src/player/*"
],
"include": [
"src/admin/react"
]
}
有什么主意我要解决吗?
我不明白为什么每次都会添加此扩展功能。
答案 0 :(得分:1)
在编译期间,TypeScript可以生成诸如__extends
之类的帮助程序,以确保相关功能将在运行时正常工作。您可以将它们视为polyfills。
默认情况下,将在需要帮助的每个文件中内联帮助器。就您而言,这就是每个使用extends
子句的文件。
您可以选择不使用此行为,并自行提供所需的帮助程序-仅这次,它们将仅被导入一次。使用--importHelpers
使TypeScript为您从tslib
中拉出它们。
tsconfig.json
{
"compilerOptions": {
...
"importHelpers": true,
...
}
}
记住要在项目中安装tslib
:
npm install tslib
在Handbook中了解有关编译器选项的更多信息。