5

在 ES6-ifying 一些 TypeScript 代码(我正在工作的项目在浏览器和节点服务器中运行,我想对浏览器包进行树摇动),我试图消除使用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 代码更改为 use import request from 'request';,它实际上工作正常......我如何强制 TS 编译器接受此代码并通过它?

4

2 回答 2

3

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

tsconfig.json

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

于 2017-12-17T02:03:06.533 回答
0

tsconfig.json基本上你需要在第 46 行删除注释,因为默认的 ts 配置文件有这个选项,但默认情况下它是注释的

于 2019-01-26T11:17:24.040 回答