企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
>[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 ~~~