我将返回可观察到的通用对象,如果用户存在则返回用户对象,否则返回null。但是在此过程中,我收到类似以下错误:
observable <-unknown->没有分配给observable <{}>。```它缺少以下属性。
auth.service.ts
import { AppUser } from './models/app-users';
import { UserService } from './user.service';
import { of } from 'rxjs';
export class AuthService {
constructor(private userObj:UserService)
get appUser$(): Observable<AppUser | null> {
return this.user$.pipe(
switchMap(user => user
? this.userObj.get<AppUser>(user.uid).valueChanges()
: of(null)
)
);
}
user.service.ts:
get(uid:string):AngularFireObject<AppUser>{
return this.db.object('/users/' + uid);
}
app-users.ts :
export interface AppUser {
name: string;
email: string;
isAdmin: boolean;
}
如果用户不存在,如何返回null?
答案 0 :(得分:4)
您应该通过更改返回类型来做到这一点。我猜您在tsconfig.json中使用了strict: true
选项:
get appUser$(): Observable<AppUser | null> {
return this.user$.pipe(
switchMap(user => user
? this.userObj.get(user.uid).valueChanges()
: of(null)
)
);
}