前言
项目里面有些typeScript的写法可以被复用,这里记录一下以供后续使用
编码实战
请求篇
增删改查
import { get, post, del, put } from '@/utils/request';
interface ResCommon {
errCode?: number | string | null;
success?: boolean;
errorMsg?: string | null;
}
/**
* 操作通用的返回,一般只有一个布尔值
*/
type ResAction<T = any> = ResCommon & {
data: T;
resultInfo?: boolean;
};
interface Item {
id: number;
name: string;
createTime: string; // 创建时间
}
/**
* 列表常用的返回;,一般有页面尺寸,总数,列表数组
*/
type ResGetList<T = any> = ResCommon & {
data: T;
resultInfo?: {
pageNum: number;
total: number;
list: Item[];
};
};
/**
* @function 新增项目
* @desc
*/
export const addItem = (params: {
name: string; // 名称
}): Promise<ResAction> => post('/api/item/add', params);
/**
* @function 根据id删除项目
*/
export const deleteItem = (params: { id: string }): Promise<ResAction> =>
del('/api/item/delete', params);
/**
* @function 根据id修改项目
*/
export const editConfig = (params: {
id: string;
name: string;
}): Promise<ResAction> =>
put('/api/item/edit', params);
/**
* @function 查询项目列表
*/
export const getConfig = (): Promise<ResGetList> =>
get('/api/item/list');