“true”类型的参数不能分配给“null”类型的参数 |不明确的'

时间:2021-04-12 07:48:46

标签: javascript angular

我已经出现这个错误好几天了,我不知道该怎么办。我是一名编程初学者,所以我尝试学习一门课程,而我们处于前端。该项目是做一个博客,但是当用户尝试登录博客时,它假设程序需要返回一个令牌和用户数据。问题是当我写第二个参数 (true) 时,它给了我这个错误。有谁知道我该如何修复它??非常感谢您抽出宝贵时间:)

enter image description here

2 个答案:

答案 0 :(得分:0)

出现问题是因为您没有将 _userServices.signup 中的类型定义与 boolean 匹配

每当您编写 truefalse 时,您都在隐式地创建一个只能是布尔值的类型,但是在您的 _userServices.signup 中,它需要一个 boolean|undefined 的联合类型。

在您的 _userServices 类中,查找 _userServices.signup 方法的定义并将预期类型从 boolean|undefined 更改为 boolean

这看起来像这样:

    class MyClass {
      myMethod(foo: boolean) {}
    }

更多信息:

TypeScript Every Day Types

TypeScript Union Types

我衷心推荐第二个链接,因为您的错误是由类型与联合类型不匹配引起的。

答案 1 :(得分:0)

好的,谢谢,抱歉是我的第一个问题。这是代码:

this._userServices.signup(this.user, true).subscribe(
        (response) => {
          this.identity = response;

          console.log(this.token);
          console.log(this.identity);

 localStorage.setItem('token', this.token);
 localStorage.setItem('identity', JSON.stringify(this.identity));

和错误信息:

错误 TS2345:“true”类型的参数不可分配给“null”类型的参数 |未定义'。

54 this._userServices.signup(this.user, true).subscribe( ~~~~