javascript - Eslint บังคับให้ใช้ค่าที่ส่งกลับ
ฉันกำลังมองหา typescript หรือกฎ eslint ที่ฉันสามารถใช้เพื่อบังคับให้ใช้ค่าที่ส่งกลับจากฟังก์ชัน เช่น
const getNum = () => 12
กฎควรอนุญาตให้ฉันเรียกใช้มันและเก็บค่าดังนี้
const a = getNum()
แต่ฉันไม่ควรจะทำได้
getNum()
ตอนนี้ฉันกำลังทดลองใช้ไลบรารีอย่าง neverthrow หรือ ts-results และณ ตอนนี้ถ้าฉันส่งค่าผลลัพธ์<ok, err> ผู้ใช้งานยังสามารถเรียกฟังก์ชันโดยไม่จัดการข้อผิดพลาดได้ โดยเฉพาะเมื่อส่วน ok เป็นเพียงผลลัพธ์ที่สำเร็จ
คำตอบ #1
กฎที่ใกล้เคียงกับสิ่งที่คุณกำลังมองหามากที่สุดคือ no-unused-expressions แต่จากคำถามของคุณ ดูเหมือนว่าคุณจะทราบกฎนั้นอยู่แล้ว หน้าเว็บเพจนั้นรวมเหตุผลว่าทำไมมันถึงอนุญาตสิ่งเช่น getNum() เพียงอย่างเดียว; ฟังก์ชันอาจคืนค่าหนึ่งค่าพร้อมกับมีผลข้างเคียงบางอย่าง การห้ามเรียกฟังก์ชันโดยไม่เก็บผลลัพธ์อย่างทั่วถึงจะทำให้โค้ดจำนวนมากดูเหมือนว่า:
const unused = callForSideEffects();
// unused is... unused
นี่เป็นการสิ้นเปลือง (เพราะคุณกำลังเก็บค่าที่ไม่เคยถูกใช้) และน่าสับสน (ทำไมต้องเก็บค่าถ้าไม่เคยถูกใช้?)
