什么是'!!用户'用于?这条线的结果是什么?



我想在我的应用程序中疯狂地守卫角度。我找到了这段代码,但不明白为什么我们将user映射到!!usermap(user => !!user)线的目的是什么?

canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot): Observable<boolean> {
      return this.auth.user.pipe()
           take(1),
           map(user => !!user),
           tap(loggedIn => {
             if (!loggedIn) {
               console.log('access denied')
               this.router.navigate(['/login']);
             }
         })
    )

!!是将某些内容转换为布尔值的常用方法。

通过在map()函数中两次应用 NOT 运算符 (!(,它将用户映射到一个布尔值,然后用作tap()函数中使用的loggedIn

用户很可能应该是具有用户数据的对象(具有真实值(。

我还假设如果您没有登录,用户将被nullundefined(具有虚假值(。