monads
1.0.0
이 저장소를 사용하는 경우 별을별로 표시하십시오
Rust에서 영감을 얻었습니다
제로 의존성 • 경량 • 기능
NPM @Thames/Monads 설치
Option<T>
유형옵션은 선택적 값을 나타냅니다. 모든 옵션은 일부이며 값이 포함되어 있거나 없으며 그렇지 않습니다.
메모
전체 문서화 : 옵션
import {옵션, 일부, 없음} '@thames/monads'; const divide = (숫자 : 숫자, 분모 : 숫자) : 옵션 <번호> => { if (denominator === 0) {return none; } else {return some (numerator / denominator); }}; // 함수의 리턴 값은 옵션 콘스트 result = divide (2.0, 3.0); // valueconst message = result.match ({ 일부 : (res) =>`결과 : $ {res}`, 없음 : '0',}로 나눌 수 없음); console.log (메시지); // "결과 : 0.6666666666666666"
Result<T, E>
유형결과는 성공 (OK) 또는 실패 (ERR) 인 값을 나타냅니다.
메모
전체 문서 : 결과
import {result, ok, err}에서 '@thames/monads'; const getIndex = (값 : String [], value : string) : result <number, string> => { const index = values.indexof (value); switch (index) {case -1 : return err ( 'value found'); 기본값 : return ok (index); }}; const 값 = [ 'a', 'b', 'c']; getIndex (values, 'b'); // ok (1) getIndex (값, 'z'); // err ( "값을 찾지 못함")
Either<L, R>
둘 중 하나는 왼쪽 또는 오른쪽의 값을 나타냅니다. 두 가지 유형의 결과를 초래할 수있는 운영을 처리하는 강력한 방법입니다.
메모
전체 문서 : 여기에도
'@thames/monads'에서 {avense, left, right}; const divide = (숫자 : 숫자, 분모 : 숫자) : <문자열, 숫자> => { if (denominator === 0) {return left ( '0'으로 나눌 수 없음); } else {return right (Numerator / denominator); }}; const result = divide (2.0, 3.0); const 메시지 = result.match ({{ 왼쪽 : (err) =>`error : $ {err}`, 오른쪽 : (res) =>`결과 : $ {res}`,}); console.log (메시지); // "결과 : 0.6666666666666666"