🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## interface : 自定义数据类型约束结构 1.基本使用 ``` //自定义一个接口,首字母I大写 interface Ilist { a: number; b: string; c?: number; } //使用自定义接口,对数据约束 let obj2: Ilist = { a: 1, b: 'hello', c: 66, } ``` ## 2.复杂结构 ``` //定义一个对象数组 interface Ilist { list: { a: number, b: string, c?: number, }[] } interface Idata { code: number, msg: string, data: Ilist,//使用自定义结构 } /模拟后端返回数据 let obj2: Idata = { code: 200, msg: '请求成功', data: { list: [ { a: 1, b: '2' } ], } } ``` ## 3.api解耦:vue项目中请求时约定类型 ``` import request from '../utils/request' //定义接口请求参数类型 interface Irequest { pageSize : number; num : number; } export function mostNew( data : Irequest ){ return request({ url:'/api/course/mostNew', method:"post", data }) } ``` ## 4.继承 ``` //定义一个对象数组 interface Ilist { list: { a: number, b: string, c?: number, }[] } interface Ichild { children? : [] } //Idata继承了Ichild,所以多了children属性 interface Idata extends Ichild{ code: number, msg: string, data: Ilist,//使用自定义结构 } let obj2: Idata = { code: 200, msg: '请求成功', data: { list: [ { a: 1, b: '2' } ], }, children : [],//继承的 } ```