/** * 全局类型定义 */ /** 接口返回值 */ declare interface apiResDataType { code: number data: any message: string } /* store */ /** 菜单 */ declare interface menuType { path: string title: string icon: string component: string children: menuType[] meta: { routeType: "layout" | "singlepage" //菜单或者单页 模式 } } /** *type tool */ /** * 提取obj中的某个属性的值类型 * *例: type a={b:{c:1}} * * type c=ExtractVByK /{c:number} */ declare type ExtractVByK, P extends keyof T> = T[P] /** * 获取 数组的类型 * * 例: type a=string[] * * type b=ArrElement< a > //string 另外: type b=a[number] 可以获取数组的类型,同时也能获取元祖的类型 */ declare type ArrElement = ArrType extends (infer ElementType)[] ? ElementType : never /** * 将obj的某些类型变为可选 * * 例: type a={a:string,b:string,c:string} * * type b=ObjPartial< a , 'a'|'b' > //{a?:string,b?:string,c:string} */ declare type ObjPartial, P extends keyof T> = Partial> & Omit