Node.js 使い始めて数カ月がたちます。今まではブラウザで動く、生の JavaScript しか書いたことないので、覚えることが多くて困っています。最近はテストの自動化に手を付け始めて、テスト自動化のついでに eslint も導入してみたのですが、エラーが出まくる出まくる・・・。(300行くらいでエラー200件)
基本は簡単につぶせるのですが困ったのが次の2つ。
let inputValue = ['tori']; let allowedValue = [ 'kuma', 'neko', ]; if (inputValue.length === 0) { // error No magic number: 0 no-magic-numbers throw new Error("空だよ!"); } // true になる let error = inputValue.some((value) => { if (allowedValue.indexOf(value) === -1) { // error No magic number: -1 no-magic-numbers return true; } return false; });
配列の length と indexOf のチェックですね。indexOf は includes で置き換え可能なのでいいですが、length の方はわざわざ 0 を定数定義するのもなんかなーといった感じです。
結局以下のような感じにしましたが、なんか微妙です。
let inputValue = ['tori']; const allowedValue = [ 'kuma', 'neko', ]; if (!inputValue.length) { // int からの暗黙的型変換が・・・ throw new Error("空だよ!"); } // true になる let error = inputValue.some((value) => { if (!allowedValue.includes(value)) { // === false でもいいかも return true; } return false; });