【工具】2102- es-toolkit:一個現(xiàn)代 JavaScript 工具包,體積更小,內(nèi)置 TypeScript 支持
共 3354字,需瀏覽 7分鐘
·
2024-07-14 11:02
介紹
es-toolkit 是一款先進(jìn)且具備高性能的現(xiàn)代化 JavaScript 實(shí)用工具庫,其擁有較小的捆綁包規(guī)模以及強(qiáng)大的類型注解,同時還提供了一系列非常不錯的函數(shù),適合日常使用。
相較于 lodash 等替代方案,es-toolkit 所提供的包體積顯著減小(最多降低 97%),且運(yùn)行時性能提升 2 - 3 倍。大部分功能是借助最新的 JavaScript 特性實(shí)現(xiàn)。
工具地址:https://es-toolkit.slash.page/
倉庫地址:https://github.com/toss/es-toolkit
亮點(diǎn)和功能
es-toolkit 亮點(diǎn)包括:
-
es-toolkit 提供多種現(xiàn)代實(shí)現(xiàn)的“日常實(shí)用函數(shù)”,如 debounce、delay、chunk、sum 和 pick。 -
設(shè)計(jì)時考慮了性能,es-toolkit 在現(xiàn)代 JavaScript 環(huán)境中“實(shí)現(xiàn)了 2-3 倍的性能提升”。 -
es-toolkit 支持開箱即用,并且與其他庫相比,可以**將 JavaScript 代碼減少高達(dá) 97%**。 -
es-toolkit 包含“內(nèi)置的 TypeScript 支持”,提供直觀且強(qiáng)大的類型。它還提供諸如 isNotNil 等有用的類型保護(hù)。 -
es-toolkit 經(jīng)過了“百分之百的測試覆蓋率的實(shí)戰(zhàn)檢驗(yàn)”,確保其可靠性和穩(wěn)健性。
es-toolkit 提供了一些常用功能:
-
Array: 數(shù)組操作工具,如 uniq 和 difference。 -
Function: 控制函數(shù)執(zhí)行的工具,包括 debounce 和 throttle。 -
Math: 數(shù)值操作工具,如 sum 和 round。 -
Object: 操作 JavaScript 對象的工具,如 pick 和 omit。 -
Predicate: 類型保護(hù)函數(shù),如 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);
// 這個調(diào)用將會被防抖處理
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
包體積
憑借自身現(xiàn)代化的達(dá)成,es-toolkit 大大降低了其包的大小,和 lodash 等其他的庫相較而言,能夠減少差不多 97%呢。這就讓 es-toolkit 在包的體積這一塊變成了最有效的那個選項(xiàng),當(dāng)中有一些實(shí)用的函數(shù),體積居然還不到 100 字節(jié)。
下面是詳細(xì)的對比:
性能
es-toolkit 在設(shè)計(jì)的時候著重考慮了性能方面,和類似于 lodash 的那些替代庫相較而言,平均性能竟然提高了 2 倍。借由充分運(yùn)用現(xiàn)代 JavaScript API ,有的函數(shù)甚至能夠達(dá)成高達(dá) 11 倍的性能提升呢。
在 MacBook Pro 14-inch (M1 Max, 2021) 上進(jìn)行了測試。
回復(fù)“加群”,一起學(xué)習(xí)進(jìn)步
