我试图将Typescript引入我现有的Angular 1.5.x应用程序。目前,我们没有权利将整个应用程序迁移到Angular 2.为了获得ES6的好处,我尝试使用TypeScript。我现在遇到了一个问题。我们的模型如BaseComponentModel
由FormModel
,GridModel
等派生。这些模型被注入到指令中,这些指令使组件和这些模型也在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'不是构造函数 功能类型。
如何解决此错误?