我正在尝试将 Typescript 引入我现有的 Angular 1.5.x 应用程序。目前我们没有权限将完整的应用程序迁移到 Angular 2。为了获得 ES6 的好处,我正在尝试使用 TypeScript。我现在遇到了一个问题。我们有类似的模型,这些模型是BaseComponentModel
由等派生的。这些模型被注入到渲染组件的指令中,并且这些模型也在 AngularJS 中注册为工厂。FormModel
GridModel
我可以成功地将我的移植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”不是构造函数类型。
我该如何解决这个错误?