# @blakek/curry 中文文档

规范地址：https://npmcn.com/package/%40blakek/curry/

版本：2\.0\.2
npm 元数据更新时间：2022-04-04T19:24:12.677Z
中文译文更新时间：2026-11-08T06:09:23.694Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40blakek/curry
原文对照：https://npmcn.com/package/%40blakek/curry/?lang=original
项目主页：https://github.com/blakek/curry
源码仓库：https://github.com/blakek/curry

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：110 kB，11 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2020-06-03T20:51:18.249Z
- 最新版本发布：2020-06-15T00:06:16.825Z
- 近 30 天下载量：145223（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：4（近 12 个月 0 个）

## 中文简介

简单的咖喱功能

## 安装

```sh
npm install @blakek/curry
```

也可以使用：`pnpm add @blakek/curry`、`yarn add @blakek/curry`、`bun add @blakek/curry`

## README

# 咖喱

> 简单的咖喱功能

一个简单的帮助者来包裹一个函数并逐渐接受(即部分应用) 参数.

这个软件包在技术上是一种辅助器部分应用,但 `curry` 有点 比较容易记住和更好的软件包函数名称 `partiallyApply`。 。 。 .

## 安装

使用 [雅伦](https://yarnpkg.com/en/docs/)数字 :

```bash
$ yarn add @blakek/curry
```

...或使用 [无](https://npmjs.com/)数字 :

```bash
$ npm i --save @blakek/curry
```

## 使用量

```js
import { curry, curryRight } from '@blakek/curry';

// Simple curry usage
const multiply = (a, b) => a * b;
const timesTwo = curry(multiply)(2);
timesTwo(5); //» 10

// Specify number of arguments
const sum = (...args) => args.reduce((a, b) => a + b, 0);
const topFiveTotal = curry(sum, 5);
topFiveTotal(1, 5, 6)(6)(7); //» 25

// Reverse arguments
const prop = (object, key) => object[key];
const getName = curryRight(prop)('name');
getName({ name: 'John Smith', age: 42 }); //» 'John Smith'
```

### 类型脚本

许多功能的类型是推断出来的. 然而,一些职能,如 变量函数,需要明确类型:

```ts
const add = (...args: number[]) => args.reduce((a, b) => a + b, 0);

const addFourItems = curry(add, 4) as VariadicCurry<
  // argument types
  [number, number, number, number],
  // return type
  number
>;

// Includes helpers for functions accepting <=5 args
const addTwo = curry(add, 2) as Curry2<number, number, number>;
```

## API 密码

### `curry`

```ts
curry(fn: Function, arity?: number): any;
```

返回一个函数的参数,直到所有函数都存在 提供.

### `curryRight`

```ts
curryRight(fn: Function, arity?: number): any;
```

与 `curry`,但一旦提供了限制,则撤销所有参数. 为需要提供针对具体情况的论据这一共同用途提供了条件 在提供第一个论据之前.

例如:

```js
import { curryRight } from '@blakek/curry';

const users = [
  { username: 'blakek' },
  { username: 'gsandf' },
  { username: 'google' }
];

const prop = (object, key) => object[key];
const getUsername = curryRight(prop)('username');
users.map(getUsername); //» [ 'blakek', 'gsandf', 'google' ]
```

## 捐款

[节点.js](https://nodejs.org/) 财务报告和审定财务报表 [雅伦](https://yarnpkg.com/en/docs/) 要求与该项目合作.

要安装所有依赖, 运行 :

```bash
yarn
```

### 有用的命令

|  |  |
| --- | --- |
| `yarn build` | 将工程构建为 `./dist` |
| `yarn format` | 按照 Pretier 样式格式化源 |
| `yarn test` | 运行项目测试 |
| `yarn test --watch` | 运行工程测试, 监视文件更改 |

## 许可证

麻省理工学院

## 常见问题

### @blakek/curry 是什么？

简单的咖喱功能

### 如何安装 @blakek/curry？

在项目目录运行 npm install @blakek/curry，或使用 pnpm add / yarn add / bun add。

### @blakek/curry 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @blakek/curry 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @blakek/curry 可以商用吗？

@blakek/curry 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @blakek/curry 的下载量有多少？

根据 npm 官方下载统计，@blakek/curry 在 2026/10/09 – 2026/11/07 这 30 天内被下载 145,223 次，日均约 4,841 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @blakek/curry 还在维护吗？

最新版本 2\.0\.2 发布于 2020/06/15（6 年前）；至今共发布 4 个版本，其中过去 12 个月发布了 0 个；首次发布于 2020/06/04。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

