@essentials/memoize-one

中文文档
1.1.0发布于 2020/06/05MITTypeScriptESM + CJS零依赖近 30 天下载 38.4万

A memoization algorithm that only caches the result of the latest set of arguments, where argument equality is determined via a provided equality function.

原始使用文档
文档目录4 节
  1. Quick Start
  2. API
  3. memoOne(fn: Function, areEqual?: Function): any
  4. LICENSE

@essentials/memoize-one

Bundlephobia Types NPM Version MIT License

npm i @essentials/memoize-one

A memoization algorithm that only caches the result of the latest set of arguments, where argument equality is determined via a provided equality function. The default areEqual function is a strict equality check on the first four arguments provided.

Quick Start

import memoOne from '@essentials/memoize-one'

const toUpper = memoOne(
  (value) => value.toUpperCase(),
  // are equal?
  (args, prevArgs) => args[0] === prevArgs[0]
)

toUpper('foo')
// FOO (uncached)
toUpper('foo')
// FOO (cached)
toUpper('foobar')
// FOOBAR (uncached)
toUpper('foo')
// FOO (uncached)

API

memoOne(fn: Function, areEqual?: Function): any

ArgumentDescription
fnThe function you're memoizing the arguments and result of
areEqualAn equality function. Return true if the arguments are equal, false if not.

LICENSE

MIT

版本与发布记录

@essentials/memoize-one 共发布 6 个版本,首次发布于 2019/04/07;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.1.0latest2020/06/056 年前
1.0.42020/05/146 年前
1.0.32020/04/116 年前
1.0.22020/01/236 年前
1.0.12019/11/266 年前
1.0.02019/04/077 年前

关于 @essentials/memoize-one 的常见问题

@essentials/memoize-one 是什么?

A memoization algorithm that only caches the result of the latest set of arguments, where argument equality is determined via a provided equality function.

如何安装 @essentials/memoize-one?

在项目目录运行 npm install @essentials/memoize-one,或使用 pnpm add / yarn add / bun add。

@essentials/memoize-one 支持 TypeScript 吗?

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

@essentials/memoize-one 支持 ESM 还是 CommonJS?

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

@essentials/memoize-one 可以商用吗?

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

@essentials/memoize-one 的下载量有多少?

根据 npm 官方下载统计,@essentials/memoize-one 在 2026/10/14 – 2026/11/12 这 30 天内被下载 383,699 次,日均约 12,790 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@essentials/memoize-one 还在维护吗?

最新版本 1.1.0 发布于 2020/06/05(6 年前);至今共发布 6 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/04/07。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。