在ES6中 - 如果有一些TypeScript代码(我正在使用的项目在浏览器和Node服务器上运行,我想对浏览器包进行树形扫描),我正试图消除{{{ 1}}并且仅使用require
。但是当我这样做的时候......
import
然后调用import * as request from 'request';
,我在Node中遇到运行时错误(使用babel生成代码ES5,因此Node兼容):
request()
另一方面,如果我这样做:
TypeError: request is not a function
然后TypeScript编译器抱怨
import request from 'request';
如果我手动将已编译的JS代码更改为使用error TS1192: Module '"<mypath>/node_modules/@types/request/index"' has no default export.
,它实际上工作正常......如何强制TS编译器接受此代码并将其传递出来?
答案 0 :(得分:2)
您可以尝试将allowSyntheticDefaultImports
:true
添加到您的
tsconfig.json
在Typescript中似乎仍然是一个悬而未决的问题。
答案 1 :(得分:0)
基本上,您需要在tsconfig.json
的第46行中删除注释,因为默认的ts配置文件具有此选项,但默认情况下已注释了