Skip to content

API 参考

uni-types 所有类型工具的完整 API 参考。

分类

核心操作

类型描述
PickRequired<T, K>将指定属性变为必需
PickPartial<T, K>将指定属性变为可选
OmitRequired<T, K>将指定属性之外变为必需
OmitPartial<T, K>将指定属性之外变为可选

元组操作

类型描述
Head<T>获取元组第一个元素
Last<T>获取元组最后一个元素
Tail<T>获取除第一个外的所有元素
Init<T>获取除最后一个外的所有元素
Reverse<T>反转元组
Flatten<T>展平嵌套元组
TupleLength<T>获取元组长度
IsEmptyTuple<T>判断元组是否为空

深度操作

类型描述
DeepPartial<T>递归将所有属性变为可选
DeepRequired<T>递归将所有属性变为必需
DeepReadonly<T>递归将所有属性变为只读
DeepMutable<T>递归移除所有 readonly
DeepOmit<T, P>移除嵌套路径处的属性
DeepPick<T, P>选择嵌套路径处的属性

品牌类型

类型描述
Brand<T, B>创建品牌名义类型
Unbrand<T>从品牌类型提取底层类型

条件类型

类型描述
If<C, T, F>类型级别的 if-then-else
Not<B>布尔类型的逻辑非
And<A, B>布尔类型的逻辑与
Or<A, B>布尔类型的逻辑或

函数类型

类型描述
Parameters<T>获取函数参数作为元组
ReturnType<T>获取函数返回类型
NthParameter<T, N>获取第 N 个参数类型
AsyncReturnType<T>解包 Promise 返回类型

键工具

类型描述
RenameKeys<T, M>重命名对象键
PrefixKeys<T, P>为所有键添加前缀
SuffixKeys<T, S>为所有键添加后缀
KeysByValueType<T, V>按值类型获取键

数字类型

类型描述
Inc<N>数字类型自增
Dec<N>数字类型自减
Add<A, B>两数相加
Subtract<A, B>两数相减
Range<From, To>创建数字范围联合

路径工具

类型描述
ValidPath<T, P>检查路径是否存在
ArrayPaths<T>获取包含数组索引的所有路径
LeafPaths<T>获取叶子节点路径
PathLength<P>获取路径段数

记录类型

类型描述
DeepNullable<T>使所有属性可空
DeepOptional<T>使所有属性可选
Immutable<T>使所有属性只读
Mutable<T>移除所有属性的只读

模板字面量

类型描述
ReplaceAll<S, From, To>替换所有匹配
Trim<S>修剪空白字符
StringLength<S>获取字符串长度
Repeat<S, N>重复字符串 N 次

类型判断

类型描述
IsArray<T>判断是否为数组
IsTuple<T>判断是否为元组
IsEqual<X, Y>判断两个类型是否相等
IsAny<T>判断是否为 any
IsNever<T>判断是否为 never
IsUnknown<T>判断是否为 unknown

类型推导

类型描述
Awaited<T>解包 Promise 类型
ArrayElement<T>获取数组元素类型
ValueOf<T>获取对象值类型
FunctionKeys<T>获取函数属性的键
NonFunctionKeys<T>获取非函数属性的键
FirstParameter<T>获取函数第一个参数类型
FunctionOnly<T>提取函数属性
DataOnly<T>提取非函数属性

实用类型

类型描述
Merge<T, U>合并两个类型
NonNullable<T>排除 null/undefined
Exclusive<T, K>创建互斥属性
NoNullish<T>移除所有属性的 null/undefined
Nullable<T>添加 null
Optional<T>添加 undefined
Maybe<T>添加 null/undefined
LoosePartial<T>将所有属性变为可选

键类型

类型描述
RequiredKeys<T>获取必需属性的键
OptionalKeys<T>获取可选属性的键
WritableKeys<T>获取可写属性的键
ReadonlyKeys<T>获取只读属性的键

路径类型

类型描述
Paths<T>获取所有嵌套属性路径
PathValue<T, P>获取路径处的值类型
SplitPath<S>将路径分割为数组

字符串命名

类型描述
CamelCase<S>转换为驼峰命名
SnakeCase<S>转换为蛇形命名
CamelCaseKeys<T>将对象键转为驼峰
SnakeCaseKeys<T>将对象键转为蛇形

高级类型

类型描述
AtLeastOne<T>要求至少一个属性
StrictExtract<T, U>严格提取类型
StrictExclude<T, U>严格排除类型
UnionToIntersection<U>联合转交叉
UnionToTuple<T>联合转元组

算法

类型描述
Sort<T, Order>数字元组排序
QuickSort<T>快速排序实现
MergeSort<T>归并排序实现
GCD<A, B>最大公约数
LCM<A, B>最小公倍数
Factorial<N>阶乘
Fibonacci<N>斐波那契数
IsPrime<N>判断是否为质数
Find<T, P>查找第一个匹配元素
FindIndex<T, P>查找第一个匹配索引
Includes<T, U>检查元组是否包含元素
IndexOf<T, U>获取元素索引
LongestCommonPrefix<T>查找最长公共前缀
Reverse<T>反转元组
Unique<T>移除重复元素
Flatten<T>展平嵌套元组
FlattenDeep<T>深度展平嵌套元组
LevenshteinDistance<A, B>字符串编辑距离

解析器

类型描述
ParseJSON<S>解析 JSON 字符串为类型
StringifyJSON<T>类型转 JSON 字符串
IsValidJSON<S>检查是否为有效 JSON
ParseURL<S>解析 URL 字符串
QueryParams<S>解析查询字符串
ParseCSV<S>解析 CSV 字符串

状态机

类型描述
StateMachine<T>状态机定义
State<S, Data>状态定义
Transition<E, From, To>转换定义

数据结构

类型描述
Tree<T>树类型
TreeNode<T>树节点类型
Graph<A>图类型(邻接表)
LinkedList<T>链表类型
Stack<T>栈类型(LIFO)
Queue<T>队列类型(FIFO)

HTTP & API

类型描述
HTTPMethodHTTP 方法联合
HTTPStatusHTTP 状态码
Route<P, M, H>路由定义
Middleware<C>中间件函数

数据库

类型描述
SQLType<T>TS 到 SQL 类型映射
QueryBuilder<T>查询构建器
Migration<T>迁移定义

并发

类型描述
Task<T>任务类型
Pipeline<I, O>管道类型
Scheduler<T>调度器类型
WorkerPool<I, O>工作池类型

互操作

类型描述
ToTypeFest<T>转换为 type-fest
ToTsToolbelt<T>转换为 ts-toolbelt
IsCompatible<T, U>检查类型兼容性

测试

类型描述
ExpectTrue<T>期望类型为 true
ExpectEqual<T, U>期望类型相等
TypeCoverage<T>类型覆盖分析
TypeComplexity<T>类型复杂度分析

断言

类型描述
AssertEqual<T, Expected>断言类型相等
AssertExtends<T, U>断言 T 继承 U
AssertKeyof<T, K>断言 K 是 T 的键
AssertNotNil<T>断言类型不是 never
RequireKeys<T, K>要求特定键
MakeOptional<T, K>使特定键可选
RequireAtLeastOne<T, K>要求至少一个键
RequireExactlyOne<T, K>要求恰好一个键
AssertHasProperty<T, K>确保对象有属性
RequireNotNullish<T>确保类型非空
RequireArray<T>确保类型为数组
RequireFunction<T>确保类型为函数

异步

类型描述
PromiseValue<T>递归提取 Promise 值
PromiseResult<T>获取 Promise 解析值
IsPromise<T>检查是否为 Promise
UnwrapPromise<T>解包 Promise
WrapPromise<T>包装为 Promise
PromiseSettledResult<T>Promise 结算结果

集合

类型描述
TypeSet<T>类型级别集合
SetAdd<S, T>向集合添加元素
SetRemove<S, T>从集合移除元素
SetHas<S, T>检查元素是否在集合中
SetUnion<A, B>集合并集
SetIntersection<A, B>集合交集
SetDifference<A, B>集合差集
SetIsEmpty<S>检查集合是否为空
SetIsSubset<A, B>检查 A 是否为 B 子集
TypeMap<K, V>类型级别映射
MapGet<M, K>获取映射值
MapSet<M, K, V>设置映射值
MapHas<M, K>检查键是否在映射中
MapDelete<M, K>删除映射键
MapKeys<M>获取映射键
MapValues<M>获取映射值
ListLength<T>获取列表长度
ListReverse<T>反转列表
ListConcat<A, B>连接列表
ListFilter<T, P>过滤列表元素
ListFind<T, P>在列表中查找元素
ListIncludes<T, U>检查列表是否包含

对象

类型描述
ObjectMap<T, F>映射对象值
ObjectFilter<T, P>过滤对象属性
ObjectPickByType<T, U>按值类型选取
ObjectOmitByType<T, U>按值类型省略
ObjectInvert<T>反转键值
DeepMerge<T, U>深度合并对象
DeepAssign<T, U>深度赋值属性
DeepDefaults<T, U>深度默认值
HasProperty<T, K>检查是否有属性
HasProperties<T, K>检查是否有多个属性
HasMethod<T, K>检查是否有方法

模式匹配

类型描述
Match<T, Patterns>模式匹配
Case<P>匹配用例
Default<R>默认用例
TypeFilter<T, P>按谓词过滤元组
TypeFind<T, P>按谓词查找元素
TypeIncludes<T, P>检查类型是否在元组中

字符串

类型描述
Split<S, D>按分隔符拆分字符串
Join<T, S>用分隔符连接字符串
KebabCase<S>转换为 kebab-case
PascalCase<S>转换为 PascalCase
IsEmail<T>检查是否为邮箱格式
IsUUID<T>检查是否为 UUID 格式
IsURL<T>检查是否为 URL 格式
Chunk<S, N>将字符串分块

性能优化

类型描述
Simplify<T>简化复杂类型
DeepSimplify<T>深度简化类型
Cached<T>缓存类型计算
CachedValue<T>提取缓存值
Memoized<T>记忆化类型
Lazy<T>延迟类型包装
ForceEvaluate<T>强制求值延迟类型
Deferred<T>延迟类型展开
FlattenType<T>展平交叉类型
StripNever<T>移除 never 属性
StripUndefined<T>移除 undefined 属性
Compact<T>移除 never 和 undefined

Schema

类型描述
RuntimeGuard<T>运行时类型守卫
GuardedType<G>提取守卫类型
HasRuntimeCheck<T>检查是否有运行时检查
CompositeGuard<T>组合对象守卫
ZodOutput<T>提取 Zod 输出类型
ZodInput<T>提取 Zod 输入类型
IsZodSchema<T>检查是否为 Zod schema
ZodShape<T>提取 Zod shape
ZodArrayElement<T>获取 Zod 数组元素
YupOutput<T>提取 Yup 输出类型
YupInput<T>提取 Yup 输入类型
IsYupSchema<T>检查是否为 Yup schema

迁移工具 (v1.11.0)

类型描述
MigrationStatus迁移状态
MigrationResult<T>迁移结果
MigrateToV2<T>迁移到 V2
MigrateFromV1<T>从 V1 迁移
RenameType<T, From, To>重命名属性
CompatV1<T>V1 兼容层
CompatV2<T>V2 兼容层
ValidateMigration<T, U>验证迁移
MigrationDiff<T, U>迁移差异
Codemod<T>Codemod 类型

废弃管理 (v1.11.0)

类型描述
Deprecated<T, Message>废弃标记
DeprecatedSince<T, Version>废弃版本标记
WillBeRemoved<T, Version>移除版本标记
Legacy<T>遗留类型
DeprecationWarning<T>废弃警告
VersionGate<T, Min, Max>版本门控
RemovedIn<T, Version>移除版本
IntroducedIn<T, Version>引入版本
Sunset<T>Sunset 标记
EndOfLife<T>生命周期结束

增强错误消息 (v1.11.0)

类型描述
DetailedError<T>详细错误
ErrorDetails错误详情
ErrorCategory错误分类
TypedError<T>类型错误
Diagnostic<T>诊断类型
DiagnosticSeverity诊断严重性
TypeMismatch<T, Expected>类型不匹配
RecoverableError<T>可恢复错误
RecoveryStrategy恢复策略
HelpMessage<T>帮助消息

破坏性变更检测 (v1.11.0)

类型描述
BreakingChangeReport<T>破坏性变更报告
BreakingChange破坏性变更
BreakingChangeType变更类型
APIDiff<T, U>API 差异
CompatibilityCheck<T, U>兼容性检查
CompatibilityLevel兼容性级别
MigrationEffort迁移工作量
ImpactAnalysis影响分析
RiskLevel风险级别
BreakingChangeGuard变更守卫

基于 MIT 许可发布