TypeError: não pode ser correspondido com 'undefined' ou 'null'

Código

client.createPet(pet, (err, {name, breed, age}) => {
  if (err) {
    return t.error(err, 'no error')
  }
  t.equal(pet, {name, breed, age}, 'should be equivalent')
})

Erro

client.createPet(pet, (err, {name, breed, age}) => {
                        ^

TypeError: Cannot match against 'undefined' or 'null'.

Por que estou recebendo esse erro? Meu conhecimento do ES6 me levou a presumir que esse erro só deveria ocorrer se omatriz ou objeto sendo destruído ou seus filhos éundefined ounull.

Eu não sabia que os parâmetros de função são usados como correspondência. E se são, por que é apenas um erro se eu tentar desestruturar um deles? (isso não éundefined ounull)

questionAnswers(1)

yourAnswerToTheQuestion