alovajs/alova

[Bug]: useHooks的`update`类型错误

JOU-amjs opened this issue · 1 comments

这是否是一个 Bug?

  • 我已经确认我要报告的是一个 Bug

这个问题是否已经存在?

  • 我已经确认这个 Issue 没有被报告过

Alova 版本

3.0.0-beta.6

前端框架

React

问题描述

const {
    // ...
    update
  } = usePagination((page, pageSize) => queryStudents(page, pageSize, studentName, clsName), {
    watchingStates: [studentName, clsName],
    initialData: { total: 0, list: [] },
    debounce: [800],
    abortLast: true,
    total: res => res.total,
    data: res => res.list
  });

其中update的类型是undefinedany组成,没有正确推断。

image

期望的表现

与导出类型的数据值相同

image

复现链接

https://github.com/alovajs/alova/blob/chore/demo/examples/react/src/views/PaginatedList/index.jsx

复现步骤

系统信息

No response

补充说明

No response

似乎是因为StateUpdater中的推断出现了问题,推出了 never。

alova/typings/clienthook/general.d.ts#L64

将此处改为:

export type StateUpdater<ExportedStates extends Record<string, any>> = (newStates: {
  [K in keyof ExportedStates]?: ExportedStates[K] extends ExportedState<infer R, any> | ExportedComputed<infer R, any>
    ? R
    : ExportedStates[K];
}) => void;

可以解决该问题。

image