import { ReactNode, CSSProperties } from 'react'; /** * 无限滚动组件的属性接口 */ export interface InfiniteScrollProps { /** 数据长度,用于判断是否需要加载更多 */ dataLength: number; /** 加载更多数据的函数 */ next: () => void; /** 是否还有更多数据 */ hasMore: boolean; /** 加载中显示的组件 */ loader?: ReactNode; /** 没有更多数据时显示的组件 */ endMessage?: ReactNode; /** 滚动容器的高度 */ height?: number | string; /** 滚动阈值,0-1之间的数值或像素值 */ scrollThreshold?: number | string; /** 滚动事件回调 */ onScroll?: (event: Event) => void; /** 自定义样式 */ style?: CSSProperties; /** 自定义类名 */ className?: string; /** 指定滚动容器的目标元素ID */ scrollableTarget?: string; /** 子元素 */ children: ReactNode; /** 是否反向滚动 */ inverse?: boolean; } /** * 滚动位置信息 */ export interface ScrollPosition { scrollTop: number; scrollHeight: number; clientHeight: number; } /** * 组件内部状态 */ export interface InfiniteScrollState { isLoading: boolean; }