使用Typescript

时间:2017-09-04 11:54:21

标签: angularjs typescript inheritance angular1.6

我试图将Typescript引入我现有的Angular 1.5.x应用程序。目前,我们没有权利将整个应用程序迁移到Angular 2.为了获得ES6的好处,我尝试使用TypeScript。我现在遇到了一个问题。我们的模型如BaseComponentModelFormModelGridModel等派生。这些模型被注入到指令中,这些指令使组件和这些模型也在AngularJS中注册为工厂。 / p>

我能够成功将BaseComponentModel移植到TypeScript,如下所示

BaseComponentModel.ts

abstract class BaseComponentModel {

   constructor(private metaJson) {}

   public type: string;

   public label: string;

   ...
}

module.exports = () => BaseComponentModel;

BaseModule.ts

module.exports = angular.module('base').factory('BaseComponentModel', require('./BaseComponentModel'));

现在我需要将基本模型导入我的FormModel以进行继承。

FormModel.ts

function FormModelProvider(BaseComponentModel: BaseComponentModel) {
  return class FormModel extends BaseComponentModel {
     public action: string;

     public isValid: bool;

     ...
  }
}

FormModelProvider.$inject = ['BaseComponentModel'];
module.exports = FormModelProvider;

运行时我在编译类型中没有看到任何问题我收到以下错误,

  

错误TS2507:输入' BaseComponentModel'不是构造函数   功能类型。

如何解决此错误?

0 个答案:

没有答案