簡體   English   中英

如何抑制使用“!!”的警告 (不是這樣的)?

[英]How can I suppress warnings for using '!!' (not not)?

在我的項目中 jshint 抱怨!! 我需要將字符串轉換為布爾值

var x = 'true';
if ( !!x === true ) { ... }

所以,jshint 拋出了以下問題:

line 35  col 20  Confusing use of '!'.

我應該禁用什么 jshint 選項以允許這樣做? 或者那是不可能的?

看起來問題出在=== 簡單地

if (!!x )

工作正常。

我認為“令人困惑”的部分是!!foo === bar難以解析優先級(是(!!foo)==bar還是!(!foo==bar) ?)。

警告:這不會按照您希望的方式進行評估

var myBool = Boolean("false");  // == true

var myBool = !!"false";  // == true

如果您不想讓 jshint 對您大喊大叫,那么在比較 bool == 時您也不需要 === 相同。 但是,如果您正在制作 bool 值,則根本不需要比較它。

if(myBool)
{
    //some code here
}

或者

if(!myBool)
{
    //some code here
}

要將值作為 bool 獲取,您可能只想進行字符串比較

var mybool = aString == "true";

這應該讓你得到你正在尋找的東西,然后你可以:

if(myBool)
{
    //some code here
}

這個特殊的“功能”在社區中引起了如此多的痛苦。 您可以通過將其放在 .jshintrc 配置文件中來禁用它。

{
    "-W018":  true
}

要真正回答這個問題,不提供解決方法,可以通過以下方式在 jshint 中禁用此錯誤

-W018

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM