index.d.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. declare namespace recycleContext {
  2. interface itemSize {
  3. width: number;
  4. height: number;
  5. }
  6. type Component = any;
  7. type Page = any;
  8. type itemSizeFunc<T> = (item: T, index: number) => itemSize
  9. interface options<T> {
  10. id: string;
  11. dataKey: string;
  12. page: Component | Page;
  13. itemSize: itemSizeFunc<T> | itemSize;
  14. useInPage?: boolean;
  15. root?: Page;
  16. }
  17. interface position {
  18. left: number;
  19. top: number;
  20. width: number;
  21. height: number;
  22. }
  23. interface RecycleContext<T> {
  24. append(list: T[], callback?: () => void): RecycleContext<T>
  25. appendList(list: T[], callback?: () => void): RecycleContext<T>
  26. splice(begin: number, deleteCount: number, appendList: T[], callback?: () => void): RecycleContext<T>;
  27. updateList(beginIndex: number, list: T[], callback?: () => void): RecycleContext<T>
  28. update(beginIndex: number, list: T[], callback?: () => void): RecycleContext<T>
  29. destroy(): RecycleContext<T>
  30. forceUpdate(callback: () => void, reinitSlot: boolean): RecycleContext<T>
  31. getBoundingClientRect(index: number | undefined): position | position[]
  32. getScrollTop(): number;
  33. transformRpx(rpx: number, addPxSuffix?: string): number;
  34. getViewportItems(inViewportPx: number): T[]
  35. getList(): T[]
  36. }
  37. }
  38. declare function createRecycleContext<T>(op: recycleContext.options<T>): recycleContext.RecycleContext<T>
  39. export = createRecycleContext;