我正在尝试在我的 Node 项目中使用 TypeScript,但我遇到了一些问题。
这是我的 index.ts 文件:
import express from 'express';
const app = express();
我在运行:
tsc --module commonsjs -d index.ts
我的输出是 index.js:
var express_1 = require('express');
var app = express_1["default"]();
这个 ["default"]
是从哪里来的?它使我的代码无法正常运行:
var app = express_1["default"]();
^
TypeError: express_1.default is not a function
据我了解,我应该得到不带“默认”括号的代码,并且它可以正常工作 - 我尝试删除括号并且它有效。
我在这里错过了什么?
最佳答案
我通过将以下内容添加到 tsconfig.json
解决了这个问题:
{
"compilerOptions": {
...
"module": "commonjs",
"esModuleInterop": true,
...
}
}
esModuleInterop 标志描述为:“发出 __importStar 和 __importDefault 帮助程序以实现运行时 babel 生态系统兼容性,并启用 --allowSyntheticDefaultImports 以实现类型系统兼容性。”
https://www.typescriptlang.org/docs/handbook/compiler-options.html
关于javascript - Node.js + TypeScript : Unclear syntax with type script compiled code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34520288/