TypeScript中的控制器继承提供未知提供程序tProvider< - t错误

时间:2018-01-21 22:01:21

标签: angularjs typescript

我的代码有2个子控制器扩展父级。

export class ParentController{
   constructor(public A: service A, public B: service B, public C: service C)
}

export class ChildController1 extends ParentController{
   constructor(A: service A, B: service B, C: service C);
   super(A,B,C);
}

export class ChildController2 extends ParentController{
   constructor(A: service A, B: service B, C: service C);
   super(A,B,C);
}

虽然代码运行完美而没有缩小,但是当我运行minifeld版本时,它会给出未知提供者:tProvider< -t error

我确实读过有关$ injector的信息,但我不明白如何在Typescript中使用它。

有没有更好的方式来表示我的代码,或者这是我在这里遗失的非常明显的事情?

1 个答案:

答案 0 :(得分:1)

t服务名称表示应用程序已缩小。为了使其正常工作,所有DI单位应为annotated

注释类的首选方法是static $inject property。在TypeScript和ES.next中,可以将其指定为static class field

export class ParentController{
   static $inject = ['A', 'B', 'C'];

   constructor(public A: service A, public B: service B, public C: service C) {}
}

如果子控制器共享相同的依赖集并且不需要自己的构造函数,则子类中可以省略constructor$inject