monads
1.0.0
このリポジトリを使用する場合は、主演してください
さびに触発されました
ゼロ依存関係•軽量•機能
npmインストール @thames/monads
Option<T>
タイプオプションはオプションの値を表します。すべてのオプションは一部であり、値が含まれているか、なしで、そうではありません。
注記
完全なドキュメントはこちら:オプション
'@thames/monads'; const divide =(numerator:number、nominator:number)から{option、some、none}からintember if(Denominator === 0){return None; } else {return some(分子 /分母); }}; //関数の戻り値はオプションですresult = divid(2.0、3.0); // valueConst message = result.matchを取得するパターン一致({{{{ 一部:(res)=> `result:$ {res}`、 なし:「0で分割できない」、}); console.log(message); //「結果:0.6666666666666666 "
Result<T, E>
タイプ結果は、成功(OK)または失敗(ERR)のいずれかである値を表します。
注記
完全なドキュメントはこちら:結果
Import {result、ok、err} from '@thames/monads'; const getindex =(values:string []、value:string):result <number、string> => { const index = values.indexof(value); switch(index){case -1:return err( '値が見つかっていない');デフォルト:return ok(index); }}; const values = ['a'、 'b'、 'c']; getIndex(values、 'b'); // ok(1)getIndex(values、 'z'); // err( "値が見つからない")
Either<L, R>
どちらも左または右の値を表します。これは、2つの明らかに異なるタイプの結果をもたらす可能性のある操作を処理する強力な方法です。
注記
完全なドキュメントはこちら:どちらか
Import {cong、left、right} '@thames/monads'; const divide =(numerator:number、nemonator:number):いずれかの<string、number> => { if(denominator === 0){return left( 'は0'で分割できない); } else {return right(分子 /分母); }}; const result = divide(2.0、3.0); const message = result.match({{ 左:( err)=> `エラー:$ {err}`、 右:(res)=> `result:$ {res}`、}); console.log(message); //「結果:0.6666666666666666 "