util functions and types for rc-hooks
npm install @rc-hooks/util* 定义 type(1); // number * 定义 * 用法 clone(1); // 1 * 定义 deepClone(1); // 1
* 定义 function guid(): string
* 用法
``typescript jsx
import React, {useMemo} from 'react'
import {guid} from '@rc-hooks/util'
function DemoComponent() {
const id = useMemo(() => guid(), []);
return (
)
}
`function type(obj: any): string
type
获取一个变量的系统预设类型,不推荐使用此函数,因为他会影响typescript的类型推导。
对于基础类型建议使用typeof,对于系统类型,比如数组,用Array.isArray,
这样可以获取更好的typescript支持。`
* 用法
typescript jsx`
import {type} from '@rc-hooks/util'
type(''); // string
type(Date.now()) // date
function clone
clone
克隆一个可以转换为json的对象,使用了内置的api。
使用JSON.stringify来实现的复制。`
* 泛型参数
- T 表示分组要克隆值的类型,通常不需要传递,利用TypeScript推导
typescript jsx`
import {clone} from '@rc-hooks/util'
clone('abc'); // abc
function deepClonedeepClone
克隆任何对象,支持函数等非JSON类型`
* 泛型参数
- T 表示分组要克隆值的类型,通常不需要传递,利用TypeScript推导
* 用法
typescript jsx`
import {deepClone} from '@rc-hooks/util'
deepClone('abc'); // abc
const fn = deepClone(() => 1);
fn() // 1
UnionOmitUnionOmit
一个安全的交叉类型,UnionOmit会交叉两个类型,当名称有冲突的时,选取第一个,而不是报错。
* 定义 `
* 用法
typescript``
import {UnionOmit} from '@rc-hooks/util'
interface Demo {
foo: string;
bar: string;
}
interface Other {
foo: number;
baz: string;
}
type DemoUnionOther = UnionOmit
type OtherUnionDemo = UnionOmit