Pratica - Monadic Library,现已完全用 Typescript 编写!
🥃 Pratica
Pratica现在完全是用 Typescript 编写的!
Pratica是什么?
Pratica是一个超级小巧的720字节单子库,与 Crocks 或 Monet JS 相当。
我为什么要使用Pratica?
如果你想开始用 JavaScript 或 TypeScript 编写更多函数式代码,这个库非常适合学习函数式编程的基础知识,同时还能让你的代码更安全、更能抵抗运行时错误。它体积小巧,语法简洁易读,采用点链式调用,让你可以轻松上手任何项目。
我该如何开始?
您可以使用以下命令安装:yarn add pratica或npm i pratica。然后您可以导入主要函数,例如:
import { nullable } from 'pratica'
通过组合函数来创建小型、安全且易于阅读的程序,例如:
// Typescript
import { Maybe, nullable, get, parseDate } from 'pratica'
const getPersonAge = (person?: Person): Maybe<number> =>
nullable(person)
.chain(get<string>(['birthday']))
.chain(parseDate)
.map(birthday => Date.now() - birthday.getTime())
.chain(parseDate)
.map(date => Math.abs(date.getUTCFullYear() - 1970))
getPersonAge({ birthday: '1994-06-08' }) // -> Just(25)
getPersonAge({ birthday: 771033600000 }) // -> Just(25)
getPersonAge({ birthday: null }) // -> Nothing
getPersonAge(null) // -> Nothing
Pratica 与 React 配合使用效果也非常好!可以在 JSX 中使用它来处理数据缺失的情况。
const viewPersonAge = ({ person }) =>
getPersonAge(person).cata({
Just: age => <div>{age}</div>
Nothing: () => <span>No age available</span>
})
试试看
点击这里,在在线浏览器沙盒中体验一下!
或者在下面的Github上查看!

🥃 Pratica
实用主义者的函数式编程
你可能会问,为什么这是为实用主义者准备的?
Pratica 牺牲了一些常见的函数式编程 (FP) 指导原则,从而提供了一个更简单、更易于使用的 API,可用于快速实现您的目标 - 同时通过代数数据类型保持数据的完整性和安全性。
安装
bun i pratica
# or
yarn add pratica
# or
npm i pratica
文档
单子
或许
当处理需要执行操作的可空数据和不可靠数据时,请使用此功能。
Maybe 非常适合确保不会因为意外的空值或未定义值而访问不存在的数据,从而导致运行时错误。
每个 Maybe 类型可以是 `Any`Just或 `Bny` Nothing。当数据可用时,它会被 `Any` 包裹Just;如果数据缺失,则为 `None` Nothing。以下示例将进一步说明这一点。
也许地图
Map 用于运行函数……
文章来源:https://dev.to/rametta/pratica-monadic-library-now-filled-in-typescript-1794