我在尝试向一个模块添加服务时遇到了这个错误。有人能帮忙指出问题所在吗?
Angular 版本为1.5.11,TypeScript 版本为2.2.2。
ERROR in ./source/mainModule.ts
(185,33): error TS2345: Argument of type 'typeof AwesomeService ' is not
assignable to parameter of type 'Injectable<Function>'.
Type 'typeof AwesomeService ' is not assignable to type '(string | Function)[]'.
Property 'push' is missing in type 'typeof AwesomeService '.
这里是我尝试添加服务的地方。
export default angular.module('iris.service', [])
/* This line throws the error --> */.service('awesomeService', AwesomeService);
在另一个文件中,这是我如何创建该服务的方式。
export class AwesomeService extends OtherClass {
private static $inject = ['configService'];
constructor() {
super();
}
}
更新:
我发现如果我将AwesomeService更改为一个函数并导出,它就可以正常工作。有没有办法使用类来实现服务?看起来@types/angular指定angular.module.service的第二个参数应该是字符串或函数。
export default angular.module('iris.service', []).service('AwesomeService', AwesomeService);
- MMachinegun.module('iris.service', []).service({ AwesomeService })
这是一个方便的简写,特别是如果您使用某些注册模式。 - Aluan Haddad