发布于 2026-01-06 1 阅读
0

Pratica——Monadic库,现已完全用TypeScript编写!🥃 Pratica

Pratica - Monadic Library,现已完全用 Typescript 编写!

🥃 Pratica

Pratica现在完全是用 Typescript 编写的!

Pratica是什么?

Pratica是一个超级小巧的720字节单子库,与 Crocks 或 Monet JS 相当。

我为什么要使用Pratica?

如果你想开始用 JavaScript 或 TypeScript 编写更多函数式代码,这个库非常适合学习函数式编程的基础知识,同时还能让你的代码更安全、更能抵抗运行时错误。它体积小巧,语法简洁易读,采用点链式调用,让你可以轻松上手任何项目。

我该如何开始?

您可以使用以下命令安装:yarn add praticanpm i pratica。然后您可以导入主要函数,例如:

import { nullable } from 'pratica'
Enter fullscreen mode Exit fullscreen mode

通过组合函数来创建小型、安全且易于阅读的程序,例如:

// 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
Enter fullscreen mode Exit fullscreen mode

Pratica 与 React 配合使用效果也非常好!可以在 JSX 中使用它来处理数据缺失的情况。

const viewPersonAge = ({ person }) =>
  getPersonAge(person).cata({
    Just: age => <div>{age}</div>
    Nothing: () => <span>No age available</span>
  })
Enter fullscreen mode Exit fullscreen mode

试试看

点击这里,在在线浏览器沙盒中体验一下

或者在下面的Github上查看!

GitHub 标志 rametta / pratica

🥃 函数式代数数据类型

npm 实践 执照 欢迎公关稿

🥃 Pratica

实用主义者的函数式编程

你可能会问,为什么这是为实用主义者准备的?

Pratica 牺牲了一些常见的函数式编程 (FP) 指导原则,从而提供了一个更简单、更易于使用的 API,可用于快速实现您的目标 - 同时通过代数数据类型保持数据的完整性和安全性。

安装

bun i pratica
# or
yarn add pratica
# or
npm i pratica
Enter fullscreen mode Exit fullscreen mode

文档

单子

或许

当处理需要执行操作的可空数据和不可靠数据时,请使用此功能。

Maybe 非常适合确保不会因为意外的空值或未定义值而访问不存在的数据,从而导致运行时错误。

每个 Maybe 类型可以是 `Any`Just或 `Bny` Nothing。当数据可用时,它会被 `Any` 包裹Just;如果数据缺失,则为 `None` Nothing。以下示例将进一步说明这一点。

也许地图

Map 用于运行函数……




文章来源:https://dev.to/rametta/pratica-monadic-library-now-filled-in-typescript-1794