Effect-TS proporciona varios métodos para filtrar valores dentro de una opción, lo que le permite aplicar transformaciones, predicados o comprobaciones en el valor opcional. Estas funciones ayudan a garantizar que solo se conserven los datos relevantes y se descarten los valores Ninguno o aquellos que no cumplan las condiciones especificadas. En este artículo, exploraremos cuatro funciones clave para filtrar opciones: O.partitionMap, O.filterMap, O.filter y O.exists.
La función O.partitionMap le permite dividir una opción en una tupla de dos opciones según una función de mapeo que devuelve una cualquiera. Los valores de Which.left se dividen en la primera Opción, mientras que los valores de Which.right van en la segunda Opción. Si la opción original es Ninguna, ambas particiones son Ninguna.
function filtering_ex01() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value const toEither = (n: number) => (n % 2 === 0 ? E.left(n) : E.right(n)); console.log(pipe(some, O.partitionMap(toEither))); // Output: [None, Some(1)] (1 is odd, so it goes to the right) console.log(pipe(none, O.partitionMap(toEither))); // Output: [None, None] (since the Option is None) }
Esta función es útil cuando necesitas aplicar un mapeo que categorice valores, mientras los separa en dos grupos: los que satisfacen una condición y los que no.
La función O.filterMap aplica una función de transformación al valor dentro de una Opción. Si la función devuelve Some, el valor se conserva; si devuelve Ninguno, el valor se filtra. Si la opción original es Ninguna, el resultado sigue siendo Ninguno.
function filtering_ex02() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value const toEven = (n: number) => (n % 2 === 0 ? O.some(n) : O.none()); console.log(pipe(some, O.filterMap(toEven))); // Output: None (since 1 is not even) console.log(pipe(O.some(2), O.filterMap(toEven))); // Output: Some(2) (since 2 is even) console.log(pipe(none, O.filterMap(toEven))); // Output: None (since the original Option is None) }
Esta función es útil cuando desea transformar y filtrar el valor dentro de una opción según condiciones específicas.
La función O.filter comprueba si el valor dentro de una Opción satisface un predicado determinado. Si se cumple el predicado, devuelve la Opción original; de lo contrario, devuelve Ninguno. Si la opción original es Ninguna, sigue siendo Ninguna.
function filtering_ex03() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value const isEven = (n: number) => n % 2 === 0; console.log(pipe(some, O.filter(isEven))); // Output: None (since 1 is not even) console.log(pipe(O.some(2), O.filter(isEven))); // Output: Some(2) (since 2 is even) console.log(pipe(none, O.filter(isEven))); // Output: None (since the original Option is None) }
La función O.exists verifica si un valor dentro de una Opción satisface un predicado, devolviendo verdadero si lo hace y falso si no lo hace. Si la opción es Ninguna, devuelve falso.
function filtering_ex04() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value const isEven = (n: number) => n % 2 === 0; console.log(pipe(some, O.exists(isEven))); // Output: false (since 1 is not even) console.log(pipe(O.some(2), O.exists(isEven))); // Output: true (since 2 is even) console.log(pipe(none, O.exists(isEven))); // Output: false (since the original Option is None) }
Esta función es útil cuando necesita una verificación rápida para determinar si el valor dentro de una Opción satisface una condición sin transformar o filtrar la Opción en sí.
Las opciones de filtrado en Effect-TS permiten un manejo flexible de valores opcionales basados en condiciones o transformaciones. Ya sea que esté particionando valores con O.partitionMap, aplicando transformaciones con O.filterMap, verificando predicados con O.filter o simplemente verificando condiciones con O.exists, estas herramientas proporcionan métodos sólidos para controlar cómo se manejan las opciones. Al utilizar estas funciones, puede administrar datos opcionales de manera eficiente, asegurando que solo se mantengan o se actúe sobre los valores relevantes.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3