0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

トナカイ 一頭Advent Calendar 2024

Day 23

Biomeのlintに怒られた書き方ランキング

Posted at

eslintからBiomeに変えてlintを走らせた時に怒られた記述方法ランキングです😿

第一位: noNonNullAssertion (84箇所)

nullを!で握りつぶすな

useRefsomeRef.current!.valueとしているところが多く、ダントツでありました。すべて修正する時間が惜しかったので設定でoffにしました

第二位: noArrayIndexKey(8箇所)

itemのkeyにindexを使うな

keyを一意にするため、安易にkeyにindexをする人への対策っぽいですね
自分も漏れなく引っかかりました…なんとkeyの文字列にindexを含むのもinvalid:x:
ただ、これはこちらの書き方、データ構造次第で回避できるので、これからのコーディングに活かせると思いました

第三位: 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はデバッグしにくいという理由で避けられています

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?