【工具】2102- es-toolkit:一个现代 JavaScript 工具包,体积更小,内置 TypeScript 支持...

介绍

es-toolkit 是一款先进且具备高性能的现代化 JavaScript 实用工具库,其拥有较小的捆绑包规模以及强大的类型注解,同时还提供了一系列非常不错的函数,适合日常使用。

b04cd14cb228f07c56ca299a5b9762f1.png

相较于 lodash 等替代方案,es-toolkit 所提供的包体积显著减小(最多降低 97%),且运行时性能提升 2 - 3 倍。大部分功能是借助最新的 JavaScript 特性实现。

工具地址:https://es-toolkit.slash.page/
仓库地址:https://github.com/toss/es-toolkit

亮点和功能

es-toolkit 亮点包括:

  • es-toolkit 提供多种现代实现的“日常实用函数”,如 debounce、delay、chunk、sum 和 pick。

  • 设计时考虑了性能,es-toolkit 在现代 JavaScript 环境中“实现了 2-3 倍的性能提升”

  • es-toolkit 支持开箱即用,并且与其他库相比,可以**将 JavaScript 代码减少高达 97%**。

  • es-toolkit 包含“内置的 TypeScript 支持”,提供直观且强大的类型。它还提供诸如 isNotNil 等有用的类型保护。

  • es-toolkit 经过了“百分之百的测试覆盖率的实战检验”,确保其可靠性和稳健性。

es-toolkit 提供了一些常用功能:

  • Array: 数组操作工具,如 uniq 和 difference。

  • Function: 控制函数执行的工具,包括 debounce 和 throttle。

  • Math: 数值操作工具,如 sum 和 round。

  • Object: 操作 JavaScript 对象的工具,如 pick 和 omit。

  • Predicate: 类型保护函数,如 isNotNil。

  • Promise: 异步操作工具,如 delay。

  • String: 字符串操作工具,如 snakeCase。

安装

es-toolkit 支持多种安装方式:

  • “Node.js 安装”:支持 Node.js 18 及更高版本;

npm install es-toolkit
  • “Deno 安装”:通过 JSR 安装到 Deno,需注意包名与 npm 不同;

deno add @es-toolkit/es-toolkit
  • “Bun 安装”:也支持在 Bun 中的安装。

bun add es-toolkit

使用示例

// import from '@es-toolkit/es-toolkit' in jsr.
import { debounce, chunk } from "es-toolkit";

const debouncedLog = debounce((message) => {
  console.log(message);
}, 300);

// 这个调用将会被防抖处理
debouncedLog("Hello, world!");

const array = [1, 2, 3, 4, 5, 6];
const chunkedArray = chunk(array, 2);

console.log(chunkedArray);
// 输出: [[1, 2], [3, 4], [5, 6]]s

包体积

凭借自身现代化的达成,es-toolkit 大大降低了其包的大小,和 lodash 等其他的库相较而言,能够减少差不多 97%呢。这就让 es-toolkit 在包的体积这一块变成了最有效的那个选项,当中有一些实用的函数,体积居然还不到 100 字节。
下面是详细的对比:

41f1e9910dca9ab69b6d4d59fd1f8995.png

性能

es-toolkit 在设计的时候着重考虑了性能方面,和类似于 lodash 的那些替代库相较而言,平均性能竟然提高了 2 倍。借由充分运用现代 JavaScript API ,有的函数甚至能够达成高达 11 倍的性能提升呢。

e58888ac5cfea562ae6393a05671265b.png

在 MacBook Pro 14-inch (M1 Max, 2021) 上进行了测试。

往期回顾

#

如何使用 TypeScript 开发 React 函数式组件?

#

11 个需要避免的 React 错误用法

#

6 个 Vue3 开发必备的 VSCode 插件

#

3 款非常实用的 Node.js 版本管理工具

#

6 个你必须明白 Vue3 的 ref 和 reactive 问题

#

6 个意想不到的 JavaScript 问题

#

试着换个角度理解低代码平台设计的本质

dd1507bc457c3240a763468b09875ac2.gif

回复“加群”,一起学习进步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/801134.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++相关概念和易错语法(21)(虚函数、协变、析构函数的重写)

多态的核心是虚函数&#xff0c;本文从虚函数出发&#xff0c;根据原理慢慢推进得到结论&#xff0c;进而理解多态 1.虚函数 先看一下下面的代码&#xff0c;想想什么导致了这个结果 #include <iostream> using namespace std;class A { public:virtual void test(){co…

原来,BI数据分析也是有模板的

在当今数据驱动的时代&#xff0c;商业智能&#xff08;BI&#xff09;数据分析已经成为企业决策的重要工具。然而&#xff0c;很多人可能并不了解&#xff0c;BI数据分析并非从零开始&#xff0c;而是可以依托现成的模板和解决方案来快速搭建和实施的。以奥威BI方案为例&#…

Springboot + JWT 的 Token 登录验证

目录 项目结构 一、 引入依赖 二、自定义Auth认证注解 三、 编写登录拦截器 四、定义跨域拦截器 五、 定义全局异常处理器 六、定义工具类 1. 统一错误状态码 2.统一响应类 3.Token工具类 七、 编写实体类 八、 定义控制器 1.定义登录控制器类 2 定义报错处理器 …

量化投资基础(二)之CAPM模型

点赞、关注&#xff0c;养成良好习惯 Life is short, U need Python 量化投资基础系列&#xff0c;不断更新中 资本资产定价模型&#xff08;Capital Asset Pricing Model,CAPM&#xff09;是由美国经济学家 威廉夏普&#xff08;William Sharpe&#xff09;于20世纪60年代基于…

小型数控车床对现代制造业的影响

小型数控车床作为现代制造业的重要生产工具&#xff0c;集成了计算机控制、精密机械、电子技术和自动化技术&#xff0c;为各种复杂零件的加工&#xff0c;在生产效率和精度上带来了显著提升&#xff0c;它是制造业中不可或缺的基础装备&#xff0c;在金属切削加工领域发挥着关…

数据库的管理

目录 远程连接的方式 修改数据库uuid流程 数据库的概念 关系型数据库 非关系型数据库 关系型数据和非关系型数据库优缺点 mysql的数据类型 数据库的管理 sql中的名词 sql语言的分类 1.DDL 创建库和表的语句 create 删除库 drop databases 2.DML: 插入数据 ins…

使用APEXSQL LOG解析sql server事务日志,进行审计与数据恢复

一 下载 https://download.csdn.net/download/sunke861/11449739 二 使用 解压安装包后&#xff0c;点击&#xff1a;ApexSQLLog.exe 2.1 连接数据库 连接要审计的数据库&#xff1a; 假如报错&#xff1a; 则点击ok关闭该窗口&#xff0c;然后点击左上方的New按钮&#xf…

IDEA创建普通Java项目

环境准备 Java环境 运行javac查看java环境是否安装完成 开发工具Intellij IDEA 下载地址&#xff1a;https://www.jetbrains.com/idea/download/?sectionwindows 创建项目 点击新建项目 填入项目名字&#xff0c;项目路径&#xff0c;选择maven,点击下面的创建 运行项目 …

数据库管理-第220期 Oracle的高可用-03(20240715)

数据库管理220期 2024-07-15 数据库管理-第220期 Oracle的高可用-03&#xff08;20240715&#xff09;1 AC/TAC2 配置Service3 用户权限4 端口开放总结 数据库管理-第220期 Oracle的高可用-03&#xff08;20240715&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文…

半导体超纯水(UPW)全面监控检测项目及液体粒子计数器应用

超纯水 (UPW) 是经过高度纯化的水&#xff0c;去除了所有矿物质、颗粒、细菌、微生物和溶解的气体。在芯片厂里&#xff0c;它也经常会被混称为 DI Water&#xff08;去离子水&#xff09;&#xff0c;但国内通常把去离子水与超纯水分的比较开&#xff0c;其实去离子水是包含了…

智能可视采耳棒耳勺安全吗?六大选购技巧排忧解惑!

耳垢作为外耳道内腺的分泌物&#xff0c;如果不及时清理&#xff0c;可能会造成耳道的栓塞&#xff0c;进而引致耳痛、听力减弱、咳嗽等不适。而传统的耳勺由于其盲操作的特性&#xff0c;对于耳道非直线结构的清理存在诸多不便。所以市面上出现了可视挖耳勺&#xff0c;让我们…

【转盘案例-基本框架-创建按钮-按钮布局 Objective-C语言】

一、转盘案例的基本框架 1.我们先来看一下这个转盘啊 新建一个项目,Name:01-大转盘 把素材拷过来, 我们先把背景图片设置一下, 这张图片,可能会很大,跟你的屏幕呢,可能不成正比,这个时候呢,我们应该用拉伸的方式,去做,那么,这个控制器的背景,应该怎么去设置, 画…

逆向案例二十——请求头参数加密,某政府农机购置与应用补贴申请办理服务系统,sm3和sm4的加密

网址&#xff1a;农机购置与应用补贴申请办理服务系统 抓包分析&#xff0c;发现请求头参数有加密&#xff0c;表单有加密&#xff0c;返回的数据也是加密的。 请求头Source是固定的&#xff0c;其他的Sign,以及Timsestamp是加密的 请求载荷也是加密的 返回的数据也是加密的。…

ValueError和KeyError: ‘bluegrass’的问题解决

项目场景&#xff1a; 项目相关背景&#xff1a; 问题描述 遇到的问题1&#xff1a; KeyError: ‘bluegrass’ 不能识别某标签 遇到的问题2&#xff1a; xml etree.fromstring(xml_str) ValueError: Unicode strings with encoding declaration are not supported. Please …

Go语言--广播式并发聊天服务器

实现功能 每个客户端上线&#xff0c;服务端可以向其他客户端广播上线信息&#xff1b;发送的消息可以广播给其他在线的客户支持改名支持客户端主动退出支持通过who查找当前在线的用户超时退出 流程 变量 用户结构体 保存用户的管道&#xff0c;用户名以及网络地址信息 typ…

MongoDB自学笔记(一)

一、MongoDB简介 MongoDB是一款基于C开发的文档型数据库。与传统的关系型数据库有所不同&#xff0c;MongoDB面向的是文档&#xff0c;所谓的文档是一种名为BSON &#xff08;Binary JSON&#xff1a;二进制JSON格式&#xff09;是非关系数据库当中功能最丰富&#xff0c;最像…

【conftest】和【fixtures】

一、 conftest.py 文件 作用&#xff1a;存放case的前提条件和后置条件配置函数&#xff1b;一般该类函数都会使用fixture装饰&#xff08;fixture该篇第二点会介绍&#xff09;&#xff1b;使用conftest里面的函数时不需要导入 conftest.py 这个文件。只需将函数名作为变量传入…

Python实现人脸识别

直接上代码&#xff1a; import face_recognition import time from PIL import Image, ImageDraw def faceRecognition(fileName): # 加载图片image face_recognition.load_image_file(fileName)# 人脸定位beginTime time.time()face_locations face_recognition.face_lo…

SEO:6个避免被搜索引擎惩罚的策略-华媒舍

在当今数字时代&#xff0c;搜索引擎成为了绝大多数人获取信息和产品的首选工具。为了在搜索结果中获得良好的排名&#xff0c;许多网站采用了各种优化策略。有些策略可能会适得其反&#xff0c;引发搜索引擎的惩罚。以下是彭博社发稿推广的6个避免被搜索引擎惩罚的策略。 1. 内…

【python】pandas报错:UnicodeDecodeError详细分析,解决方案以及如何避免

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…