如何将 ES6 导入与“请求”npm 模块一起使用

Pet*_*aer 5 node.js typescript npm-request es6-modules

在 ES6-ifying 一些 TypeScript 代码(我正在工作的项目在浏览器和 Node 服务器中运行,我想摇动浏览器包),我试图消除使用require并且只使用import. 但是当我这样做时...

import * as request from 'request';

然后调用request(),我在 Node 中得到运行时错误(在使用 babel 使代码 ES5 和 Node 兼容之后):

TypeError: request is not a function

另一方面,如果我这样做:

import request from 'request';

然后 TypeScript 编译器抱怨

error TS1192: Module '"<mypath>/node_modules/@types/request/index"' has no default export.

如果我手动更改已编译的 JS 代码以使用import request from 'request';它,它实际上工作正常......我如何强制 TS 编译器接受此代码并直接通过它?

Kri*_* PC 4

您可以尝试将\xc2\xa0 allowSyntheticDefaultImports: true\xc2\xa0 添加到您的\xc2\xa0

\n\n
tsconfig.json\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xc2\xa0 似乎在 Typescript 中仍然是一个悬而未决的问题。

\n