【问题标题】:How to use Increment Operator inside Ngoninit()?如何在 Ngoninit() 中使用增量运算符?
【发布时间】:2020-02-06 10:28:47
【问题描述】:

我正在使用增量运算符来更改 ngoninit() 中的变量值,但编译器给了我这个错误:

error TS2356: An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type.

我在 ngoninit() 中的代码:

  ngOnInit() {
      if(!localStorage.getItem("tempuid")) {
        localStorage.setItem("tempuid","0");
      }
      let uid = localStorage.getItem("tempuid");
      uid++;
      localStorage.setItem("tempuid",uid);
  }

我想增加“uid”的值,或者有其他方法可以做到这一点。 提前致谢

【问题讨论】:

  • localStorage.setItem("tempuid","0"); uid 存储为字符串。您是否尝试过将其转换为如下数字:let uid = +localStorage.getItem("tempuid");
  • komal 的回答做到了。谢谢大家的时间

标签: javascript angular typescript local-storage command-line-interface


【解决方案1】:

您的uidstring 类型,尝试将其转换为数字或任何类型

正确的方式将其转换为数字

let uid = parseInt(localStorage.getItem("tempuid"));
          uid++;

或者您可以使用 any 消除此错误

let uid:any = localStorage.getItem("tempuid");
      uid++;

【讨论】:

  • @Bravo 是的,它可以使用任何方法,但更好的方法是将其转换为数字
  • 是的,它甚至可以在 javascript 中工作(不知道为什么我虽然没有)
  • @Bravo 你甚至可以从错误中得到一个想法An arithmetic operand must be of type 'any', 'number', 'bigint'
  • @IngoBürk 对不起,这是一个错字,刚刚更新了答案,谢谢指出
【解决方案2】:

你可以试试这个代码。我希望它会帮助你。

  ngOnInit() {
          if(!localStorage.getItem("tempuid")) {
            localStorage.setItem("tempuid","0");
          }
          let uid:any = localStorage.getItem("tempuid");
          uid++;
          localStorage.setItem("tempuid",uid);
      }

【讨论】:

  • 这个答案不同,但更糟糕的是,因为它完全抛弃了类型信息。
【解决方案3】:

只需将存储数据解析成Number

let uid = Number(localStorage.getItem("tempuid"));
uid++;

【讨论】:

    猜你喜欢
    • 2017-01-11
    • 2019-02-16
    • 2017-10-02
    • 2020-04-15
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    相关资源
    最近更新 更多