我在typeScript + angular中遇到问题,这里的类foo是一个服务,它使用另一个服务作为fooService而fooServie.getUser()正在返回某种类型的承诺
编译很好,但是这种类型错误:TS2409:构造函数签名的返回类型必须可赋值给类的实例类型
请帮我解决问题
module fooModule {
export class foo {
static $inject = ['fooService'];
constructor(public fooService:services.fooService) {
return fooService.getUser();
}
}
}
答案 0 :(得分:2)
编译很好,但是这种类型错误:TS2409:构造函数签名的返回类型必须可赋值给类的实例类型
错误很明显。构造函数return fooService.getUser();
的return语句应该给出类class foo
的实例。例如
declare class FooService{
getfoo():foo;
}
class foo {
constructor(public fooService:FooService) {
return fooService.getfoo();
}
}
否则在var f = new foo
中,变量f
不属于foo
类型。
我不确定你的意图是什么,但希望这会引导你更多:
module fooModule {
export class Foo {
static $inject = ['fooService'];
constructor(public fooService:services.FooService) {
}
getUser():ng.IPromise<User>{
return this.fooService.getUser();
}
}
var foo = new Foo();
foo.getUser().then(()=>{
// complete this code here
});
}