{ message = ‘ok‘ } = {}
function foo({x, y = 5}:any){
console.log(x,y)
}
foo({}) //输出 undefined 5
foo({x:1}) // 输出 1 5
foo({x:1,y:2}) // 输出 1 2
foo() //报错 TypeError: Cannot destructure property ‘x‘ of ‘undefined‘ as it is undefined.
foo
传入的参数是一个对象时,会解构出x,y
。否则会报错!当我们需要使用默认值时,必须传入一个空对象,否则就如同上面一样会报错。foo
函数修改成如下:function foo({x,y = 5}:any ={}){
console.log(x,y)
}
foo() // 输出为 undefined 5
原文:https://www.cnblogs.com/baiyifengyun/p/15083010.html