@ones-design/utils
Version:
ONES Design
33 lines (32 loc) • 1.19 kB
TypeScript
import type { ReactNode, ReactElement } from 'react';
type AnyObject = Record<any, any>;
type RenderProps = undefined | AnyObject | ((originProps: AnyObject) => AnyObject | undefined);
/**
* 是否为有效的子元素
* @param children React 的子元素
* @return 是否为有效的子元素
*/
declare function isValidChildren(children: ReactNode): boolean;
/**
* 可以接收 ReactNode 的拷贝方法 (React cloneElement 的增强版)
* 使用场景,想使用 React.cloneElement 但是又不想传入 ReactElement 时可以使用
* @param element React 元素
* @param props 属性
* @returns 拷贝后的 ReactElement
*/
declare function cloneElement(element: ReactNode, props?: RenderProps): ReactElement;
/**
* 判断一个元素是否为 Fragment 类型
* @param element 需判断的元素
*/
declare function isFragment(element: any): boolean;
interface Option {
keepEmpty?: boolean;
}
/**
* 将传入的 ReactNode 节点转换为数组
* @param children 被转换的 ReactNode
* @param option 自定义配置
*/
declare function toArray(children: ReactNode, option?: Option): ReactElement[];
export { isFragment, isValidChildren, toArray, cloneElement };