【问题标题】:Type 'Observable<User | null>' is not assignable to type 'Observable<User>'键入'可观察<用户 | null>' 不可分配给类型 'Observable<User>'
【发布时间】:2021-07-04 16:06:46
【问题描述】:

所以这里是 authService.ts :

 user$: Observable<firebase.User> 

 constructor(private afAuth: AngularFireAuth) { 
 this.user$ = afAuth.authState ;  //<-------- here's the problem
  }```                                                          
                                     

【问题讨论】:

标签: angular typescript firebase-authentication observable angularfire


【解决方案1】:

这取决于你的意图,你要允许null吗?

如果是这样,只需更改 user$ 上的输入:

 user$: Observable<firebase.User|null> 

如果你不想要 null,你可以过滤掉 null 排放:

this.user$ = afAuth.authState.pipe(
   filter(u => !!u)
)

【讨论】:

  • 在实施第二种方法后,我现在遇到此错误:错误:src/app/auth.service.ts:18:19 - 错误 TS2769:没有重载匹配此调用。重载 1 of 2, '(谓词: (value: User | null, index: number) => value is User, thisArg?: any): OperatorFunction',给出以下错误。输入“用户 | null' 不可分配给类型 'boolean'。类型“null”不能分配给类型“boolean”。
  • Overload 2 of 2, '(predicate: (value: User | null, index: number) => boolean, thisArg?: any): MonoTypeOperatorFunction',给出以下错误。输入“用户 | null' 不可分配给类型 'boolean'。类型 'null' 不能分配给类型 'boolean'。 18 过滤器(u => u)
  • 如果你这样做是否有效:filter(u =&gt; !!u)
猜你喜欢
  • 2019-01-10
  • 2021-04-18
  • 1970-01-01
  • 2019-04-22
  • 1970-01-01
  • 2019-12-25
  • 2020-07-21
  • 2017-12-18
相关资源
最近更新 更多