monads
1.0.0
หากคุณใช้ repo นี้ให้แสดง
แรงบันดาลใจจากสนิม
การพึ่งพาศูนย์ • น้ำหนักเบา • ใช้งานได้
npm ติดตั้ง @thames/monads
Option<T>
พิมพ์ตัวเลือกแสดงถึงค่าที่เป็นตัวเลือก: ทุกตัวเลือกเป็นบางอย่างและมีค่าหรือไม่มีและไม่มี
บันทึก
เอกสารฉบับเต็มที่นี่: ตัวเลือก
นำเข้า {ตัวเลือก, บาง, ไม่มี} จาก '@thames/monads'; const divide = (ตัวเลข: หมายเลข, ตัวส่วน: หมายเลข): ตัวเลือก <bumber> => { if (dismonator === 0) {return none; } else {return บาง (ตัวเศษ / ส่วน); }}; // ค่าส่งคืนของฟังก์ชั่นเป็นตัวเลือกผลลัพธ์ = หาร (2.0, 3.0); // การจับคู่รูปแบบเพื่อดึงข้อความ valueConst = result.match ({{ บางส่วน: (res) => `ผลลัพธ์: $ {res}`,, ไม่มี: 'ไม่สามารถหารด้วย 0',}); console.log (ข้อความ); // "ผลลัพธ์: 0.666666666666666666"
Result<T, E>
ประเภทผลลัพธ์แสดงถึงค่าที่ประสบความสำเร็จ (ตกลง) หรือความล้มเหลว (ERR)
บันทึก
เอกสารฉบับเต็มที่นี่: ผลลัพธ์
นำเข้า {ผลลัพธ์, ตกลง, err} จาก '@thames/monads'; const getIndex = (ค่า: สตริง [], ค่า: สตริง): ผลลัพธ์ <หมายเลข, สตริง> => { const index = value.indexof (ค่า); สวิตช์ (ดัชนี) {case -1: return err ('ไม่พบค่า'); ค่าเริ่มต้น: return ok (index); }}; ค่า const = ['a', 'b', 'c']; getIndex (ค่า, 'b'); // ตกลง (1) getIndex (ค่า, 'z'); // err ("ไม่พบค่า")
Either<L, R>
ทั้งแสดงถึงค่าที่เป็นซ้ายหรือขวา มันเป็นวิธีที่ทรงพลังในการจัดการการดำเนินงานที่อาจส่งผลให้เกิดผลลัพธ์สองประเภทที่แตกต่างกันอย่างชัดเจน
บันทึก
เอกสารฉบับเต็มที่นี่: อย่างใดอย่างหนึ่ง
นำเข้า {อย่างใดอย่างหนึ่งซ้ายขวา} จาก '@thames/monads'; const divide = (ตัวเลข: หมายเลข, ส่วน: หมายเลข): ทั้ง <สตริง, หมายเลข> => { if (dismonator === 0) {return left ('ไม่สามารถหารด้วย 0'); } else {return Right (ตัวเศษ / ส่วน); }}; const result = หาร (2.0, 3.0); ข้อความ const = result.match ({ ซ้าย: (err) => `ข้อผิดพลาด: $ {err}` ขวา: (res) => `ผลลัพธ์: $ {res}`,}); console.log (ข้อความ); // "ผลลัพธ์: 0.666666666666666666"