-
Notifications
You must be signed in to change notification settings - Fork 0
Home
github-actions[bot] edited this page Jun 8, 2026
·
5 revisions
从实际项目中沉淀的 TypeScript 工具库。不追求大而全,只收录真正在生产中反复使用的函数。
核心设计原则:
-
类型推断优先 — 泛型从原函数推断,不需要手动指定。
retry(fn)返回的函数自动保持fn的参数和返回值类型。 -
高阶函数模式 —
retry、timeout等都是fn => fn的包装器,返回增强后的函数而非立即执行。 -
unknown守住边界 — 对外暴露的类型一律unknown,迫使使用者显式收窄;any只出现在泛型约束的基底声明中。 - 不过度抽象 — 没有 DI、没有装饰器、没有配置体系。三行能解决的事不封装成类。
使用 Bun.js 开发,兼容 Node.js 运行时。
API 文档见 GitHub Wiki(由 TypeDoc + typedoc-github-wiki-theme 生成)。
# node
npm install @zenstone/ts-utils
# bun
bun add @zenstone/ts-utilsimport { retry, isStr, errMsg } from '@zenstone/ts-utils';ESM 支持子路径导入:
import { retry, RetryExhaustedError, TimeoutError } from '@zenstone/ts-utils/async';
import { isStr, errMsg, isNumber, isInferObj } from '@zenstone/ts-utils/guards';
import { createPathUtils } from '@zenstone/ts-utils/path';| 模块 | 说明 | 导入路径 |
|---|---|---|
async |
异步工具函数 | @zenstone/ts-utils/async |
guards |
Type Guards 和基础类型工具 | @zenstone/ts-utils/guards |
path |
路径处理 | @zenstone/ts-utils/path |
http |
HTTP 相关工具 | @zenstone/ts-utils/http |
remote |
远程模块加载 | @zenstone/ts-utils/remote |
fetch-download |
下载工具 | @zenstone/ts-utils/fetch-download |
misc |
杂项工具(timer、singleton、configurable 等) | @zenstone/ts-utils/misc |
events |
事件发布订阅 | @zenstone/ts-utils/events |
traits |
traits | @zenstone/ts-utils/traits |
异步工具函数
Classes:
Functions:
Type Guards 和基础类型工具
Functions:
andaryGuardcalcProgressceil10decimalAdjusterrMsgfloor10isAryisBoolisCtorisErrLikeisInferObjisNilisNullisNumberisNumberValisPlainObjisPresentisPromiseisStrisUndefinedlimitNumberMaxlimitNumberMinlimitNumberMinMaxnotnotEmptyArynotEmptyStrorround10toNumber
路径处理
Functions:
HTTP 相关工具
Functions:
远程模块加载
Classes:
Functions:
下载工具
Classes:
Functions:
杂项工具(timer、singleton、configurable 等)
Functions:
事件发布订阅
Functions:
traits
Functions: