Menggunakan ==
untuk membandingkan dengan nol bukanlah kesalahan atau berbahaya saat membandingkan nilai yang dijamin sebagai Angka. Sebagai contoh:
var arr = ["foo"];
var arrIsEmpty = (arr.length == 0);
Saya cenderung menggunakan ==
dalam situasi ini dan ini murni keputusan gaya. Saya ingin JSHint menghormati keinginan saya yang terinformasi dengan baik.
Anda mengetahui opsi eqeqeq
, bukan? Dari situlah kesalahan ini berasal, menyetelnya ke false akan membebaskan Anda dari kasus ini. Atau apakah Anda mencari sesuatu yang lebih spesifik, seperti hanya menyembunyikan perbandingan dengan 0
(dan bukan perbandingan dengan nilai lain)?
eqeqeq adalah kasus umum. Tampaknya ada pemeriksaan terpisah untuk membandingkan dengan 0 yang mengeluh bahkan jika eqeqeq salah.
Yang benar-benar saya inginkan adalah dapat menekan semua bentuk keluhan dari JSHint tentang penggunaan == dan !=, tetapi perbandingan dengan 0 yang mencegahnya.
Hmm. Kode terkait ada di sini, itu pasti secara khusus memanggil perbandingan itu (antara lain):
https://github.com/jshint/jshint/blob/6140ade7437799e182347bf2d39ec68c3c3d0263/src/jshint.js#L2201 -L2215
https://github.com/jshint/jshint/blob/6140ade7437799e182347bf2d39ec68c3c3d0263/src/jshint.js#L1338 -L1346
Anda dapat menonaktifkan peringatan ini dengan kodenya.
Bagi orang lain yang mungkin kesulitan memanfaatkan jawaban valueof, menyetel "-W041": false
tampaknya berhasil.
Terima kasih @privman
FYI, saya juga menemukan detail lebih lanjut di sini
Apakah ada motivasi untuk menjaga peringatan W041
berlaku ketika "eqeqeq": false
?
Mereka secara efektif melarang penggunaan ==
dan !=
dalam situasi yang terpengaruh.
Komentar yang paling membantu
Bagi orang lain yang mungkin kesulitan memanfaatkan jawaban valueof, menyetel
"-W041": false
tampaknya berhasil.