这段typescript有没有更优美的interface定义方法 ?

export interface InventoryPageType extends IResponseType {
  data: Data // 比如 Data List 都在 InventoryPageType 内实现
}

export interface Data extends IPageType {
  list: List[]
}

interface List {
  name: string
  transportCode: string
}
interface IPageType {
  currPage: number
  /**
   * 每页记录数
   */
  pageSize: number
  /**
   * 总记录数
   */
  totalCount: number
  /**
   * 总页数
   */
  totalPage: number
}
interface IResponseType {
  responseCode: string
  responseDesc: '0001' | '0002'
  success: boolean
}
阅读 1.8k
3 个回答

你这个挺完美的呀,定的细一些,也方便使用,你觉得哪里不完美

感觉现在这样就已经拆的比较细了,可以把 IResponseTypeIPageType 这种比较通用的放到shared.ts里公用,然后每个分页接口的第一单独写在对应的模块下

interface IResponse {
  code: string;
  desc?: string;
  success: boolean;
}

interface IDataResponse<TData> extends IResponse {
  data: TData;
}


// ---

interface IPagination<TItem> {
    currPage: number;
      pageSize: number;
    totalCount: number;
    totalPage: number;
    list: TItem[];
}

interface IPaginationResponse<TItem> extends IDataResponse<IPagination<TItem>> {
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进