Effect-TS は、存在するかどうかを表す値を表す Option 型を処理するための堅牢なツール セットを提供します。この記事では、ライブラリが提供するさまざまなゲッターを使用して、オプション内の値を取得するさまざまな方法を検討します。
O.getOrElse 関数を使用すると、オプションが None の場合にデフォルト値を指定できます。これは、フォールバック値を常に利用できるようにしたい場合に便利です。
import { Option as O, pipe } from 'effect'; function getters_ex01() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value console.log(pipe(some, O.getOrElse(() => 'none'))); // Output: 1 (since some contains 1) console.log(pipe(none, O.getOrElse(() => 'none'))); // Output: 'none' (since none is None) }
O.getOrThrow 関数は、オプションが Some の場合はその値を返し、それ以外の場合はデフォルトのエラーをスローします。
import { Option as O, pipe } from 'effect'; function getters_ex02() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value console.log(pipe(some, O.getOrThrow)); // Output: 1 (since some contains 1) try { console.log(pipe(none, O.getOrThrow)); // This will throw an error } catch (e) { console.log(e.message); // Output: getOrThrow called on a None } }
O.getOrNull 関数は、オプションが Some の場合はその値を返し、それ以外の場合は null を返します。
import { Option as O, pipe } from 'effect'; function getters_ex03() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value console.log(pipe(some, O.getOrNull)); // Output: 1 (since some contains 1) console.log(pipe(none, O.getOrNull)); // Output: null (since none is None) }
O.getOrUnknown 関数は、オプションが Some の場合はオプション内の値を返し、それ以外の場合は未定義を返します。
import { Option as O, pipe } from 'effect'; function getters_ex04() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value console.log(pipe(some, O.getOrUndefined)); // Output: 1 (since some contains 1) console.log(pipe(none, O.getOrUndefined)); // Output: undefined (since none is None) }
import { Option as O, pipe } from 'effect'; function getters_ex05() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value console.log(pipe(some, O.getOrThrowWith(() => new Error('Custom Error')))); // Output: 1 (since some contains 1) try { console.log(pipe(none, O.getOrThrowWith(() => new Error('Custom Error')))); // This will throw a custom error } catch (e) { console.log(e.message); // Output: Custom Error } }
これらのさまざまなゲッターを使用すると、さまざまなシナリオでオプション タイプを効果的に処理でき、オプションが Some か None かに関係なくコードが正しく動作するようになります。これらのユーティリティは、オプションの値を操作するための明確でタイプセーフな方法を提供し、null チェックに関連する一般的な落とし穴を回避し、コードの可読性と保守性を向上させます。これらのパターンを採用すると、よりクリーンで堅牢なコードベースが得られます。
以上がEffect-TS でのオプション ゲッターの探索の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。