🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>[success] # 绕过接口的多余参数检查-- 三种方式 *什么是接口的多余参数检查 ~~~ interface Baseinfo { name:string, sex?:string } // 人 function printPesonInfo(parmasinfo: Baseinfo) { console.log(`姓名:${parmasinfo.name }`) } // 如果直接传递参数,且传递的参数key未在接口中定义会提示错误 printPesonInfo( {name:'wang',age:13} ) // 报错的 ~~~ * 第一种解决使用类型断言 ~~~ interface Baseinfo { name:string, sex?:string } // 人 function printPesonInfo(parmasinfo: Baseinfo) { console.log(`姓名:${parmasinfo.name }`) } // 利用类型断言,告诉编译器我们传递的参数 就是Baseinfo 接口的东西 printPesonInfo( {name:'wang',age:13} as Baseinfo ) // wang ~~~ * 第二种 索引签名 ~~~ interface Baseinfo { name:string, sex?:string, [other:string]:any } // 人 function printPesonInfo(parmasinfo: Baseinfo) { console.log(`姓名:${parmasinfo.name }`) } // 接口中的索引签名other 就会收到age printPesonInfo( {name:'wang',age:13}) // wang ~~~ * 利用类型兼容性 ~~~ interface Baseinfo { name:string, sex?:string, } // 人 function printPesonInfo(parmasinfo: Baseinfo) { console.log(`姓名:${parmasinfo.name }`) } let paramsinfo = {name:'wang',age:13} // 类型兼容性就是我们定义的paramsinfo 不管有都少东西,只要包含接口中定义的即可 printPesonInfo(paramsinfo) // 姓名:wang ~~~