【问题标题】:Argument of type 'string | null' is not assignable to parameter of type 'string'. Type 'null' is not assignable to type 'string'.ts(2345)'string | 类型的参数null' 不能分配给“字符串”类型的参数。类型 'null' 不可分配给类型 'string'.ts(2345)
【发布时间】:2021-09-06 10:38:13
【问题描述】:

错误:'string | 类型的参数null' 不能分配给“字符串”类型的参数。类型 'null' 不可分配给类型 'string'.ts(2345)

错误行:this.setSession(res.body._id, res.headers.get('x-access-token'), res.headers.get('x-refresh-token'));


  constructor(private http: HttpClient, private webService: WebRequestService, private router: Router) { }

  login(email: string, password: string) {
    return this.webService.login(email, password).pipe(
      shareReplay(),
      tap((res: HttpResponse<any>) => {
        // auth tokens will be in the header of this response 
        this.setSession(res.body._id, res.headers.get('x-access-token'), res.headers.get('x-refresh-token'));
        console.log('logged in');
        console.log(res);
      })
    )
  }

  logout() {
    this.removeSession();
  }

  private setSession(userId: string, accessToken: string, refreshToken: string) {
    localStorage.setItem('user-id', userId);
    localStorage.setItem('access-token', accessToken);
    localStorage.setItem('refresh-token', refreshToken);
  }

  private removeSession() {
    localStorage.removeItem('user-id');
    localStorage.removeItem('access-token');
    localStorage.removeItem('refresh-token');
  }
}```

【问题讨论】:

标签: angular typescript


【解决方案1】:

看起来参数res.body._idres.headers.get('x-access-token')res.headers.get('x-refresh-token') 之一具有空值,而您将它们的类型定义为字符串。

-尝试console.log(res.body._id, res.headers.get('x-access-token'), res.headers.get('x-refresh-token')) 看看是哪一个返回 null。

-尝试更改声明 private setSession(userId: string, accessToken: string, refreshToken: string)private setSession(userId: string|null, accessToken: string|null, refreshToken: string|null)

【讨论】:

  • 或者,private setSession(userId?: string, accessToken?: string, refreshToken?: string)
猜你喜欢
  • 2018-04-05
  • 1970-01-01
  • 2021-09-30
  • 2021-06-12
  • 2021-07-14
  • 2022-11-30
  • 1970-01-01
  • 2021-09-22
  • 1970-01-01
相关资源
最近更新 更多