在不污染构造函数的情况下将 Angular 工厂依赖项注入 Typescript class?

Inject Angular factory dependency into Typescript class without polluting constructor?

我正在将工厂编写为 Typescript class 并在需要时用 new FactoryName() 实例化它。

我通过这样做让它像工厂一样工作:.factory('FactoryName', function() { return FactoryName; })它工作得很好,但现在我需要将我在 Typescript 之外制作的另一个工厂注入它而不会污染构造函数调用.这可能吗?

app.factory('FactoryName', ['...', (...deps) => new FactoryName(...deps)]);

由于匿名函数不能很好地与 $inject 注释一起使用,数组注释更适合这种情况。

我找到了解决方法:

export function FactoryName(injectedService1, injectedService2) {
  return class FactoryClass {
    constructor() {
      let test = injectedService1.testFunction();
    }
  }
}

app.factory('FactoryName', FactoryName)