eslintからBiomeに変えてlintを走らせた時に怒られた記述方法ランキングです😿
第一位: noNonNullAssertion (84箇所)
nullを!
で握りつぶすな
useRef
でsomeRef.current!.value
としているところが多く、ダントツでありました。すべて修正する時間が惜しかったので設定でoff
にしました
第二位: noArrayIndexKey(8箇所)
itemのkeyにindexを使うな
keyを一意にするため、安易にkeyにindexをする人への対策っぽいですね
自分も漏れなく引っかかりました…なんとkeyの文字列にindexを含むのもinvalid
ただ、これはこちらの書き方、データ構造次第で回避できるので、これからのコーディングに活かせると思いました
第三位: noUselessElse(5箇所)
早期リターンされている場合のelseは不要
早期リターンしている場合はelseが不要だというlintルールです。正直好みな気がします
if (isWrong) {
throw new Error('error.')
} else if (isInvalid) {
return {message: "invalid"}
} else if (isCorrect) {
return {message: "success"}
}
上記のコードの場合、elseが全部不要で、isCorrectのところはifがいらないので 下記のようになります
if (isWrong) {
throw new Error('error.')
}
if (isInvalid) {
return {message: "invalid"}
}
return {message: "success"}
第四位: noExtraBooleanCast(4箇所)
過剰にBoolean Castするな
- if(!!inputValue) {}
+ if(inputValue) {}
これはBoolean Castをすべきという言説がありましたし、自分でもそうすべきでは?とは思います
使う場所によって賛否ありそうです
第五位: useNodejsImportProtocol(4箇所)
nodejsのモジュールはnode:と明示的に書け
感想: 確かに…
番外編: noForEach
forEachは使うな
for (const item of data)
という書き方を知っているのでforEachを使っている意識はなかったです 無意識に使っちゃってました
* forEachはデバッグしにくいという理由で避けられています