
valid-typeof
強制比較 typeof
表達式與有效的字串
在絕大多數的使用案例中,typeof
運算子的結果是以下字串常值之一:"undefined"
、"object"
、"boolean"
、"number"
、"string"
、"function"
、"symbol"
和 "bigint"
。將 typeof
運算子的結果與其他字串常值進行比較通常是一種輸入錯誤。
規則詳細資訊
此規則強制比較 typeof
表達式與有效的字串常值。
此規則的錯誤程式碼範例
在遊樂場中開啟
/*eslint valid-typeof: "error"*/
typeof foo ===
typeof foo ==
typeof bar !=
typeof bar !==
此規則的正確程式碼範例
在遊樂場中開啟
/*eslint valid-typeof: "error"*/
typeof foo === "string"
typeof bar == "undefined"
typeof foo === baz
typeof bar === typeof qux
選項
此規則有一個物件選項
"requireStringLiterals": true
允許將typeof
表達式僅與字串常值或其他typeof
表達式進行比較,並禁止與任何其他值進行比較。預設值為false
。
requireStringLiterals
使用 { "requireStringLiterals": true }
選項的錯誤程式碼範例
在遊樂場中開啟
/*eslint valid-typeof: ["error", { "requireStringLiterals": true }]*/
typeof foo ===
typeof bar ==
typeof baz ===
typeof qux ===
typeof baz ===
typeof foo ==
使用 { "requireStringLiterals": true }
選項的正確程式碼範例
在遊樂場中開啟
/*eslint valid-typeof: ["error", { "requireStringLiterals": true }]*/
typeof foo === "undefined"
typeof bar == "object"
typeof baz === "string"
typeof bar === typeof qux
何時不使用它
如果您將在主機物件上使用 typeof
運算子,您可能需要關閉此規則。
版本
此規則在 ESLint v0.5.0 中引入。
延伸閱讀
