【发布时间】:2021-06-04 11:25:32
【问题描述】:
在我拥有的 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>'
我不想返回未定义的。我宁愿返回 false 而不是 undefined。
我该怎么做?
【问题讨论】:
-
我很确定如果
user未定义,user?将返回未定义,这可能是undefined的来源。在这些情况下,您可以尝试对 undefined 进行一些检查并返回 false
标签: angular typescript rxjs observable angular11