monads
1.0.0
如果您使用此存儲庫,請播放
受鏽的啟發
零依賴項•輕量級•功能
NPM安裝 @Thames/Monads
Option<T>
類型選項代表可選值:每個選項都是某些選項,並且包含一個值,或者不包含一個,並且不包含。
筆記
完整文檔此處:選項
導入{option,某些,none}來自'@thames/monads'; const divide =(numerator:number,number,denoMinator:number):選項<數字> => { if(denoMinator === 0){返回none; } else {返回一些(Numerator / denominator); }}; //函數的返回值是一個optionConconst = divide(2.0,3.0); //模式匹配以檢索ValueConst messages = resteg.match({{{ 有些:(res)=>`結果:$ {res}`, 無:'不能除以0',}); console.log(message); //“結果:0.666666666666666”
Result<T, E>
類型結果代表成功(確定)或故障(ERR)的值。
筆記
這裡的完整文檔:結果
導入{結果,好的,err}來自'@thames/monads'; const getIndex =(values:string [],value:string):result <number,string> => { const index = values.indexof(value); switch(index){案例-1:返回err('value找不到');默認值:return ok(index); }}; const values = ['a','b','c']; getIndex(values,'b'); // ok(1)getIndex(values,'z'); // err(“未找到值”)
Either<L, R>
類型要么代表左右的值。這是處理操作的強大方法,可以導致兩種截然不同的結果。
筆記
完整的文檔在這裡:要么
import {既有,左,右}來自'@thames/monads'; const divide =(numerator:number:number,denoMinator:number):<string,number> => {{ if(denoMinator === 0){返回左('不能除以0'); } else {return right(Numerator / denominator); }}; const結果= divide(2.0,3.0); const message = resteg.match({{ 左:(err)=>`錯誤:$ {err}`, 對:( res)=>`結果:$ {res}`,}); console.log(message); //“結果:0.666666666666666”