如何使用const将Javascript转换为Typescript导入
我正在尝试导入faktory(github.com/jbielick/faktory\u worker\u节点)。 自述文件建议:如何使用const将Javascript转换为Typescript导入,javascript,typescript,Javascript,Typescript,我正在尝试导入faktory(github.com/jbielick/faktory\u worker\u节点)。 自述文件建议: const faktory = require('faktory-worker'); faktory.register('ResizeImage', async ({ id, size }) => { const image = await Image.find(id); await image.resize(size); }); faktory.
const faktory = require('faktory-worker');
faktory.register('ResizeImage', async ({ id, size }) => {
const image = await Image.find(id);
await image.resize(size);
});
faktory.work();
我试着把它翻译成打字稿:
从“faktory worker”导入faktory;
寄存器('ResizeImage',异步({id,size})=>{
const image=wait image.find(id);
等待图像。调整大小(大小);
});
faktory.work();
我不断得到TypeError:无论我做什么,都无法读取未定义的属性“register”。
我想我必须使用const
以某种方式创建一个对象,但我就是不知道如何创建
我可以保留语法,但Typescript建议按规则导入的最佳实践无var要求:require语句不是导入语句的一部分
我认为您也必须实现该模块的Typescript定义:
例如,将该文件保存到root中的文件夹typings
,并将以下内容添加到tsconfig.json
:
{
"compilerOptions": {
"typeRoots" : ["./typings"]
}
}
这将包括接口和注册方法
实现这一点还有其他可能性向tsconfig.json添加“esModuleInterop”:true
为我解决了这个问题,例如
{
"compilerOptions": {
"esModuleInterop": true
// ...
}
}
我的意思是没有为这个定制类型module@JurajKocan它是如何工作的?我上面描述的方式?您可以从'faktory worker'导入faktory
?是的,在这个模块的index.d.ts中是“导出默认faktory”,没有问题,也没有编译javascript@JurajKocan你有没有可能分享这段代码?正如我提到的,我也可以导入,但当我尝试faktory.register
时,它会抛出提到的异常TypeError:无法读取未定义的属性“register”
你用我的答案尝试了吗?这个模块有TypeScript定义,所以它应该是这样工作的。有最新的版本吗?3.0.4中增加了打字。