javascript - Hur man får varning/fel när man använder logisk eller-operator med bokstavliga strängar
Finns det ett sätt att få ett kompilerings- eller linterfel eller varning för följande kod:
const isValid = myValue.includes("substrA" || "substrB");
Delen "substrA" || "substrB" utvärderas alltid till "substrA" så jag kan inte föreställa mig när någon skulle skriva denna kod avsiktligt. I mitt särskilda fall var den avsedda koden:
const isValid = myValue.includes("substrA") || myValue.includes("substrB");
Självklart kan du fånga ett sådant fel med tester. Det skulle vara ännu bättre om en varning genererades för det av TypeScript-kompilatorn eller av ESLint.
Som förväntat klagar inte kompilatorn eftersom det är helt giltig JavaScript/TypeScript-kod. Däremot kunde jag inte hitta någon ESlint-regel för det heller.
Finns det ett sätt att få en varning genererad för koden i det första kodavsnittet ovan?