Javascript 运行时';默认值不是一个函数';从Fastfy插件导入fp时
我正在尝试使用Javascript 运行时';默认值不是一个函数';从Fastfy插件导入fp时,javascript,node.js,typescript,fastify,Javascript,Node.js,Typescript,Fastify,我正在尝试使用fastfy插件来更好地处理ES6的恶作剧 以下工作很好 const fp = require('fastify-plugin'); export default fp(async (server, opts, next) => { // ... next(); }); 但将ol'所需的替换为导入,即 import fp from 'fastify-plugin'; export default fp(async (server, opts, next) =&g
fastfy插件
来更好地处理ES6的恶作剧
以下工作很好
const fp = require('fastify-plugin');
export default fp(async (server, opts, next) => {
// ...
next();
});
但将ol'所需的
替换为导入
,即
import fp from 'fastify-plugin';
export default fp(async (server, opts, next) => {
// ...
next();
});
它在运行时失败,抱怨fastfy\u plugin\u 1.default不是一个函数
,即使TypeScript一个字也不说
我对此感到非常困惑。default
导出是在fastfy plugin
splugin.d.ts
中定义的,因此从逻辑上讲它不会抱怨。但它也定义了module.exports
为plugin.js
中的fp
函数(我假设必须是)。那么,为什么它说默认值不是一个函数呢?module.exports
与exportdefault
不同吗
FWIW我在上
"dependencies": {
"fastify": "^3.1.1",
"fastify-plugin": "^2.0.1",
"typescript": "^3.9.7"
}
我尝试了各种
tsconfig.json
技巧和不同的import
s。任何东西都不起作用(除了需要)。在tsconfig.json
中设置“esModuleInterop”:true
在的“编译器选项”下。请注意,plugin.d.ts
文件出错。比较和plugin.d.ts
应该使用export=
而不是export default
来编写。请注意,如果plugin.d.ts
在使用export default
时正确,您的第一个代码段将无法运行。无法使用以下代码重复:fastify@3.13.0,禁食-plugin@2.3.4intsconfig.json
set“esModuleInterop”:编译器选项下的true
“
。请注意,plugin.d.ts
文件出错。比较和plugin.d.ts
应该使用export=
而不是export default
来编写。请注意,如果plugin.d.ts
在使用export default
时正确,您的第一个代码段将无法运行。无法使用以下代码重复:fastify@3.13.0,禁食-plugin@2.3.4