0

我正在尝试将 Typescript 引入我现有的 Angular 1.5.x 应用程序。目前我们没有权限将完整的应用程序迁移到 Angular 2。为了获得 ES6 的好处,我正在尝试使用 TypeScript。我现在遇到了一个问题。我们有类似的模型,这些模型是BaseComponentModel由等派生的。这些模型被注入到渲染组件的指令中,并且这些模型也在 AngularJS 中注册为工厂。FormModelGridModel

我可以成功地将我的移植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的继承中。

表单模型.ts

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

     public isValid: bool;

     ...
  }
}

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

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

错误 TS2507:类型“BaseComponentModel”不是构造函数类型。

我该如何解决这个错误?

4

0 回答 0