Effect-TS でのオプション ゲッターの探索

王林
リリース: 2024-07-18 00:37:32
オリジナル
611 人が閲覧しました

Exploring Option Getters in Effect-TS

Effect-TS は、存在するかどうかを表す値を表す Option 型を処理するための堅牢なツール セットを提供します。この記事では、ライブラリが提供するさまざまなゲッターを使用して、オプション内の値を取得するさまざまな方法を検討します。

例 1: O.getOrElse の使用

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)
}
ログイン後にコピー

例 2: O.getOrThrow の使用

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
  }
}
ログイン後にコピー

例 3: O.getOrNull の使用

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)
}
ログイン後にコピー

例 4: O.getOrUnknown の使用

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)
}
ログイン後にコピー

例 5: O.getOrThrowWith の使用

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 サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!