javascript - Node.js + TypeScript : Unclear syntax with type script compiled code

标签 javascript node.js typescript es6-module-loader

我正在尝试在我的 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/

相关文章:

javascript - setTimeout 返回一个 promise

javascript - 在函数的@param 和@returns 中使用相同的泛型类型

ios - Cloud Foundry node.js 应用程序在 iOS Safari 移动设备上加载缓慢

node.js - 在node.js中可以同时运行两段代码吗?

node.js - 哪些 NodeJS 框架适合为 Nativescript 应用程序(基于 JS)构建完整的后端?

javascript - 如何在 Material UI 中的字段之间留出空间?

javascript - jQuery css() 中字体系列名称中的数字不起作用

javascript - 如何在 Typescript 中定义对象变量的类型?

javascript - React Native onPanResponderMove 似乎很少被调用

node.js - Angular2 http post 请求到另一个端口上的 nodejs 服务器