我正在尝试导入faktory(github.com/jbielick/faktory_worker_node)。 自述文件建议:
const faktory = require('faktory-worker');
faktory.register('ResizeImage', async ({ id, size }) => {
const image = await Image.find(id);
await image.resize(size);
});
faktory.work();
我试图将其翻译为Typescript:
import faktory from 'faktory-worker';
faktory.register('ResizeImage', async ({ id, size }) => {
const image = await Image.find(id);
await image.resize(size);
});
faktory.work();
无论我做什么,我都会不断得到TypeError: Cannot read property 'register' of undefined
。
我以为我必须使用const
来创建对象,但我只是想不通。
我可以保留语法,但是Typescript建议通过规则no-var-requires: require statement not part of an import statement
答案 0 :(得分:0)
我认为您也必须实现该模块的打字稿定义:index.d.ts
E.G。将该文件保存到根目录下的文件夹typings
中,并将以下内容添加到tsconfig.json
中:
{
"compilerOptions": {
"typeRoots" : ["./typings"]
}
}
这将包括接口并注册方法。
还有其他可能性可以实现@types, typeRoots and types
答案 1 :(得分:0)
例如,将 "esModuleInterop": true
添加到tsconfig.json对我来说解决了这个问题,
{
"compilerOptions": {
"esModuleInterop": true
// ...
}
}