我正在尝试将Puppeteer与TypeScript,@types/puppeteer
和Jest一起使用。
Puppeteer使用默认导出,其工作方式为pptr.test.js
:
import pptr from 'puppeteer'
pptr.launch(
// ... config here
)
但是,当我安装@types/puppeteer
并重命名为pptr.test.ts
时,出现此TS错误:
模块'“ / home / jack / Documents / Extensions / messages-example / node_modules / @ types / puppeteer / index”'没有默认导出。
该代码可以使用Babel进行编译并在Jest中运行。
这些都不起作用,但是可以通过TS检查:
import { launch } from 'puppeteer'
import * as pptr from 'puppeteer'
两者都失败,并显示TypeError,例如“ ...不是函数”。
我的tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
"noImplicitReturns": true,
"noUnusedLocals": true,
"outDir": "lib",
"sourceMap": true,
"strict": true,
"target": "es2017",
}
}
@types/puppeteer
错误吗?处理此类TypeScript情况的最佳方法是什么?
答案 0 :(得分:2)
您需要在esModuleInterop
的{{1}}道具下设置allowSyntheticDefaultImports
和compilerOptions
然后您应该可以将其作为默认值导入。