Rumah >hujung hadapan web >tutorial js >Meneroka Penukaran Opsyen dalam Effect-TS
Effect-TS menyediakan alatan berkuasa untuk mengendalikan Option dan Sama ada jenis. Dalam artikel ini, kami akan meneroka pelbagai cara untuk menukar dan memanipulasi jenis ini menggunakan fungsi utiliti perpustakaan.
Fungsi O.getRight menukar Sama ada kepada Pilihan, membuang ralat. Jika Either is Right, ia mengembalikan O.some(value), jika tidak ia mengembalikan O.none.
import { Option as O, Either as E, pipe } from 'effect'; function conversions_ex01() { const eitherRight = E.right('ok'); // Create an Either containing the value 'ok' const eitherLeft = E.left('error'); // Create an Either representing an error console.log(O.getRight(eitherRight)); // Output: Some('ok') console.log(O.getRight(eitherLeft)); // Output: None }
Fungsi O.getLeft menukar Sama ada kepada Pilihan, membuang nilai. Jika Sama ada Kiri, ia mengembalikan O.some(error), jika tidak ia mengembalikan O.tiada.
import { Option as O, Either as E, pipe } from 'effect'; function conversions_ex02() { const eitherRight = E.right('ok'); // Create an Either containing the value 'ok' const eitherLeft = E.left('error'); // Create an Either representing an error console.log(O.getLeft(eitherRight)); // Output: None console.log(O.getLeft(eitherLeft)); // Output: Some('error') }
Fungsi O.getOrElse mengembalikan nilai di dalam Pilihan jika ia adalah Beberapa, jika tidak, ia mengembalikan nilai lalai yang disediakan.
import { Option as O, pipe } from 'effect'; function conversions_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.getOrElse(() => 'default') ) ); // Output: 1 (since some contains 1) console.log( pipe( none, O.getOrElse(() => 'default') ) ); // Output: 'default' (since none is None) }
Fungsi O.orElse mengembalikan Pilihan yang disediakan iaitu jika diri Tiada, sebaliknya ia mengembalikan diri. Fungsi ini membenarkan rantaian Pilihan dengan sandaran ialah Pilihan lain.
import { Option as O, pipe } from 'effect'; function conversions_ex04() { const some1 = O.some(1); // Create an Option containing the value 1 const some2 = O.some(2); // Create an Option containing the value 2 const none = O.none(); // Create an Option representing no value console.log( pipe( some1, O.orElse(() => some2) ) ); // Output: Some(1) (since some1 contains 1) console.log( pipe( none, O.orElse(() => some2) ) ); // Output: Some(2) (since none is None and fallback is some2) }
Fungsi O.orElseSome mengembalikan nilai lalai yang disediakan yang dibalut dengan Some jika self is None, jika tidak ia mengembalikan self. Fungsi ini membenarkan rantaian Pilihan dengan sandaran adalah nilai lalai yang dibalut dalam Beberapa.
import { Option as O, pipe } from 'effect'; function conversions_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.orElseSome(() => 2) ) ); // Output: Some(1) (since some contains 1) console.log( pipe( none, O.orElseSome(() => 2) ) ); // Output: Some(2) (since none is None and fallback is 2) }
Fungsi O.orElseEither mengembalikan Pilihan yang mengandungi Sama ada di mana Kiri adalah daripada Pilihan sandaran dan Kanan adalah daripada Pilihan asal. Fungsi ini membenarkan rantaian Pilihan di mana sandaran menyediakan Sama ada untuk lebih konteks.
import { Option as O, Either as E, pipe } from 'effect'; function conversions_ex06() { const some1 = O.some(1); // Create an Option containing the value 1 const some2 = O.some(2); // Create an Option containing the value 2 const none = O.none(); // Create an Option representing no value console.log( pipe( some1, O.orElseEither(() => some2) ) ); // Output: Some(Right(1)) (since some1 contains 1) console.log( pipe( none, O.orElseEither(() => some2) ) ); // Output: Some(Left(2)) (since none is None and fallback is some2) }
Fungsi O.firstSomeOf mengembalikan Some pertama yang ditemui dalam Opsyen boleh lelar. Jika semuanya Tiada, ia akan kembali Tiada.
import { Option as O } from 'effect'; function conversions_ex07() { const options = [O.none(), O.some(1), O.some(2)]; // Create an iterable of Options const optionsAllNone = [O.none(), O.none()]; // Create an iterable of None Options console.log(O.firstSomeOf(options)); // Output: Some(1) (since the first non-None Option is Some(1)) console.log(O.firstSomeOf(optionsAllNone)); // Output: None (since all Options are None) }
Fungsi O.toRefinement menukar fungsi mengembalikan Pilihan kepada pengawal jenis, membenarkan pemeriksaan jenis yang lebih khusus.
import { Option as O } from 'effect'; function conversions_ex08() { const isPositive = (n: number): O.Option<number> => n > 0 ? O.some(n) : O.none(); const isPositiveRefinement = O.toRefinement(isPositive); console.log(isPositiveRefinement(1)); // Output: true (since 1 is positive) console.log(isPositiveRefinement(-1)); // Output: false (since -1 is not positive) }
Fungsi O.toArray menukarkan Pilihan kepada tatasusunan. Jika Pilihan ialah Beberapa, ia mengembalikan tatasusunan yang mengandungi nilai; jika Tiada, ia mengembalikan tatasusunan kosong.
import { Option as O } from 'effect'; function conversions_ex09() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value console.log(O.toArray(some)); // Output: [1] (since some contains 1) console.log(O.toArray(none)); // Output: [] (since none is None) }
Dalam artikel ini, kami telah meneroka pelbagai fungsi yang disediakan oleh Effect-TS untuk menukar dan memanipulasi Pilihan dan Mana-mana jenis. Fungsi ini meningkatkan fleksibiliti dan ekspresi kod anda, membolehkan anda mengendalikan nilai pilihan dan rawan ralat dengan lebih anggun. Sama ada anda perlu menukar Sama ada kepada Opsyen, rantaian berbilang nilai Opsyen atau melakukan operasi selamat jenis, Effect-TS menawarkan set alat yang mantap untuk memudahkan tugasan ini. Dengan memanfaatkan utiliti ini, anda boleh menulis kod yang lebih bersih dan boleh diselenggara yang mengendalikan kehadiran atau ketiadaan nilai secara berkesan.
Atas ialah kandungan terperinci Meneroka Penukaran Opsyen dalam Effect-TS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!