2016-09-15 60 views
0

每当我试着transpile下面的代码,我收到错误:错我的代码键入一个返回观察到

TypeScript error: /Users/development/Desktop/Source/MyApp/MyApp/app/providers/register-service/register-service.ts(30,12): Error TS2322: Type 'Observable<{}>' is not assignable to type 'Observable<string>'. 
    Type '{}' is not assignable to type 'string'. 

但我看不到任何东西(显然):

getRegisteredName(): Observable<string> { 
    return new Observable(observer => { 
     let registeredName: string = localStorage.getItem('RegisteredName'); 

     if (registeredName) { 
      observer.next(registeredName); 

      observer.complete(); 
     } 
     else { 
      observer.error(null); 
     } 
    }); 
} 

为什么TypeScript转译器拒绝这个函数?

+1

你试过'返回新的可观测(..)'? –

+0

这就是它 - 谢谢:) – keldar

回答

1

已指定可观察你要返回的类型:

Observable<string> 

但TS并不知道在这一点上你这是真的回来了。你必须做把这件事告诉TS编译:

return new Observable<string> 
+0

图例 - 谢谢你!这是不明显的,直到你被告知,然后你意识到它是多么明显:) – keldar

+0

太棒了!如果工作正常,请接受答案。谢谢! – Baumi

+0

我以为我有,但似乎我没有!现在完成了:) – keldar

相关问题