【发布时间】:2016-04-03 21:11:17
【问题描述】:
我正在尝试在我的节点项目中使用 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
据我了解,我应该得到没有“默认”括号的代码,并且它会正常工作 - 我尝试删除括号并且它有效。
我在这里错过了什么?
【问题讨论】:
-
模块应该是
commonjs而不是commonsjs。这可能会给您带来问题。 -
考虑使用 esModuleInterop: true 编译器选项(在您的 tsconfig 中设置)。这使您可以按照您的预期执行
import express from 'express' -
你也可以试试
import * as express from 'express',而不是import express from 'express'- 哪个工作通常取决于tsconfig.json中的esModuleInterop设置
标签: javascript node.js typescript es6-module-loader