代码之家  ›  专栏  ›  技术社区  ›  Matthew M

Typescript错误,如何执行if语句比较对象值和整数

  •  0
  • Matthew M  · 技术社区  · 6 年前

    我目前正在尝试学习typescript,以便与Angular和Ionic一起使用。我有一个变量名为“barcodeData”的JSON字符串,它看起来非常类似于下面的内容。

    { cancelled: 0, "text":"TEXT","format":"QR_CODE" }
    

    要检查用户是否已取消条形码扫描仪,我需要执行如下检查:

    if (barcodeData.cancelled == 0) {
        //user has not cancelled. Continue code.
    }
    

    显然,上述内容在Javascript中可以正常工作,但在尝试编译Typescript时,我在控制台中遇到以下错误:

    运算符“==”不能应用于类型“boolean”和“0”。

    我还尝试了单等号、三等号和“==false”,以防它以布尔形式出现,但所有这些都会产生相同的错误,或者编译后根本不起作用。

    有没有关于如何克服错误的想法?提前谢谢。

    编辑:如何定义变量:

    this.barcodeScanner.scan().then((barcodeData) => { 
      if (barcodeData.cancelled == 0) {
        // continue execution
      }
    });
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Matthew M    6 年前

    问题解决了,经过更多的研究,将类型定义为any似乎可以防止显示错误。如果有人有更准确的答案,请在下面输入。

    this.barcodeScanner.scan().then(barcodeData:any) => {
        if (barcodeData.cancelled == 0) {
            // code works
        }
    });
    

    出租 变量:任意 在then函数中,允许代码正常工作。

    编辑:同样在这种情况下,运行(!)操作员也允许代码工作,但这可能不适用于所有未来情况:

    if (!barcodeData.cancelled) {
        // also works
    }