【问题标题】:Property 'token' does not exist on type 'Object'. Typescript issue“对象”类型上不存在属性“令牌”。打字稿问题
【发布时间】:2021-07-19 02:15:32
【问题描述】:

所以我收到一个编译器错误,指出对象类型上不存在令牌。该对象从服务器返回,带有两个对象。一个令牌和一个用户对象。我不确定如何在下面的代码示例中定义 res 以便打字稿可以接受。

return this.http.post(api.url, params)
        .map(res => {
          if (res && res.token) {
              localStorage.setItem('token', res.token);
              localStorage.setItem('user', JSON.stringify(res.user));
              return true;
          }

          return false;
        });

【问题讨论】:

  • 使用 res['token'] 代替 res.token。您的问题将得到解决

标签: angular typescript


【解决方案1】:

Typescript 抱怨响应没有名为 token 的属性,请将其更改为,

return this.http.post(api.url, params)
        .map((res:any) => {

【讨论】:

  • any 的使用应该最少,在这种情况下,resres.token 似乎可能为 null/未定义。将其声明为.map((res?: {token?: string, user: object}) => { 会减少错误
【解决方案2】:
 return this.http.post(api.url, params)
    .map(res => {
      if (res && res.token) {
          localStorage.setItem('token', res[‘token’]);
          localStorage.setItem('user', JSON.stringify(res[‘user’]));
          return true;
      }

      return false;
    });

【讨论】:

    猜你喜欢
    • 2017-09-06
    • 2021-01-05
    • 2017-03-02
    • 2021-09-07
    • 2020-08-13
    • 2020-10-31
    • 1970-01-01
    • 2017-08-07
    • 2017-03-26
    相关资源
    最近更新 更多