#680·comlink

在包装对象图形时,TypeScript 类型似乎不正确

作者: jderemer创建于 2025年8月8日更新于 2025年8月8日

我在包装的 Web 工作者如下所示:

worker.js

interface MyWebWorker {
  service: {
    method: () => void;
  };
}

Comlink.expose({
  service: {
    method: () => {},
  },
});

main.js

const worker = new Worker("worker.js");

const obj = Comlink.wrap<MyWebWorker>(worker);

main.js 中包装后,我得到以下类型:

  • obj: Remote<MyWebWorker>
  • obj.service: Promise<{ method: () => void }> 我想要的类型如下所示:
  • obj: Remote<MyWebWorker>
  • obj.service: { method: () => void }
  • obj.service.method: () => Promise<void>

在运行时,我可以运行 obj.service.method(),它将成功调用 Web 工作者。

内容来源: GoogleChromeLabs/comlink