Return false 而不是 undefined
Return false instead of undefined
在 Angular 11 / Typescript 应用程序上我有:
authorize(policy: Policy) : Observable<boolean> {
switch(policy) {
case Policy.Admin:
return zip(this.authenticationService.isSignedIn(), this.user$).pipe(
map(([isSignedIn, user]: [boolean, UserModel]) =>
isSignedIn
&&
user?.claims?.some((claim: Claim) => claim.value === 'Admin'))
);
user
是 Observable<UserModel>
类型,isSignedIn
是 Observable<boolean, undefined>
.
类型
当我构建应用程序时出现错误:
Type 'Observable<boolean | undefined>' is not assignable to type 'Observable<boolean>'
我不想return未定义。我宁愿 return false 而不是 undefined.
我该怎么做?
用布尔值结束你的地图...
const isSignedIn$ = this.authenticationService.isSignedIn();
const user$ = this.user$;
return zip(isSignedIn$, user$).pipe(
map(([isSignedIn, user]: [boolean, UserModel]) => {
const hasAdminRole = user?.claims?.some((claim: Claim) => claim.value === 'Admin');
return !!(isSignedIn && hasAdminRole);
})
);
在 Angular 11 / Typescript 应用程序上我有:
authorize(policy: Policy) : Observable<boolean> {
switch(policy) {
case Policy.Admin:
return zip(this.authenticationService.isSignedIn(), this.user$).pipe(
map(([isSignedIn, user]: [boolean, UserModel]) =>
isSignedIn
&&
user?.claims?.some((claim: Claim) => claim.value === 'Admin'))
);
user
是 Observable<UserModel>
类型,isSignedIn
是 Observable<boolean, undefined>
.
当我构建应用程序时出现错误:
Type 'Observable<boolean | undefined>' is not assignable to type 'Observable<boolean>'
我不想return未定义。我宁愿 return false 而不是 undefined.
我该怎么做?
用布尔值结束你的地图...
const isSignedIn$ = this.authenticationService.isSignedIn();
const user$ = this.user$;
return zip(isSignedIn$, user$).pipe(
map(([isSignedIn, user]: [boolean, UserModel]) => {
const hasAdminRole = user?.claims?.some((claim: Claim) => claim.value === 'Admin');
return !!(isSignedIn && hasAdminRole);
})
);