如何将Java需求翻译成带有const的Typescript导入

时间:2019-09-24 12:26:39

标签: javascript typescript

我正在尝试导入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

导入最佳做法

2 个答案:

答案 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
    // ...
  }
}