RcUtil - 工具函数、通用类型
这里包含了很多通用的小函数和通用的类型定义
guid
生成一个全局唯一的字符串,如果需要id在每一次请求的时候不变,需要要useMemo。
type
获取一个变量的系统预设类型,不推荐使用此函数,因为他会影响typescript的类型推导。
对于基础类型建议使用typeof,对于系统类型,比如数组,用Array.isArray,
这样可以获取更好的typescript支持。
clone
克隆一个可以转换为json的对象,使用了内置的api。
使用JSON.stringify来实现的复制。
deepClone
克隆任何对象,支持函数等非JSON类型
UnionOmit
一个安全的交叉类型,UnionOmit会交叉两个类型,当名称有冲突的时,选取第一个,而不是报错。
- 定义
UnionOmit<T, K> = T & Omit<K, keyof T>
- 用法
import {UnionOmit} from '@rc-hooks/util'
interface Demo {
foo: string;
bar: string;
}
interface Other {
foo: number;
baz: string;
}
type DemoUnionOther = UnionOmit<Demo, Other> // {foo: sting, bar: string; baz: string}
type OtherUnionDemo = UnionOmit<Other, Demo> // {foo: number, bar: string; baz: string}