键入返回的可观察对象
Typing a returned observable
每当我尝试转译以下代码时,都会收到错误消息:
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 转译器拒绝这个函数?
您已指定要访问的 Observable 类型 return:
Observable<string>
但是此时 TS 并不知道你真正在说什么 return。您必须通过以下方式将其告诉 TS 编译器:
return new Observable<string>
每当我尝试转译以下代码时,都会收到错误消息:
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 转译器拒绝这个函数?
您已指定要访问的 Observable 类型 return:
Observable<string>
但是此时 TS 并不知道你真正在说什么 return。您必须通过以下方式将其告诉 TS 编译器:
return new Observable<string>