做项目时遇到封装函数useTable,因为项目中表格基本都使用了这个函数,自己在做自定义新表格时看到这个函数就很疑惑,遇到了各种各样的问题,也不懂ts,在这里试着配合文档理解一下这个函数的功能,之后有了解再继续更新。 -> ts文档  
试图完成导出表格的功能,使用fetchYearExcel向后端发出请求。下面是封装好的useTable使用。
const { refresh, searchBy, submit, excelLoading, exportExcel, tableProps } = useTable(
()=>Promise,
fetchYearExcel,
{
form: props.form
}
)
useTable介绍:
import { Result, Func, Options } from './types';
export default function useTable<T>(getData: Func<any>, getExcel?: Func<any> | Options, options?: Options): Result;
./types,关于Type详细定义:
export declare type Func<T> = (...args: any[]) => Promise<T | undefined>;
export declare type TableSetting = {
total: number;
onPaginationChange: (pageNum: number, pageSize: number) => void;
current: number;
size: number;
};
export declare type Result = {
refresh: (checkDec: boolean) => void;
searchBy: (filter: any) => void;
exportExcel: Func<any>;
excelLoading: boolean;
params: object | null;
setDataSource: (data: []) => void;
submit: (e: any) => void;
reset: () => void;
tableProps: {
loading: boolean;
dataSource: any;
pagination: any;
onChange: (...args: any) => void;
setting: TableSetting;
};
};
export declare type Filters = {
[key: string]: string | number | undefined;
} | null;
export declare type Options = {
defaultFilters?: Filters | undefined;
form?: any;
};

关于promise:promise MDN  
|