如何在 InversifyJS 中注入你无法控制的代码

How to inject code you don't control in InversifyJS

是否可以注入无法编辑的 类?似乎 Inversify 严重依赖 annotations/decorators 但还有其他方法吗?

来自inversify wiki

In some cases you may get errors about missing annotations classes provided by a third party modul like:

Error: Missing required @injectable annotation in: SamuraiMaster

您可以使用装饰功能解决这个问题:

import { decorate, injectable } from "inversify";
import SomeClass from "some-module";

decorate(injectable(), SomeClass);
return SomeClass;

查看 JS example 维基页面上的更多信息。

您还可以查看 inversify-vanillajs-helpers 项目。