Где будут храниться возвращаемые значения с этой строкой кода: «const { значение: { имя, адрес электронной почты, пароль } } = ожидание ctx.request.body().значение; «

#typescript #syntax #deno

Вопрос:

Я не могу понять , откуда берутся переменные ctx.request.body().value , которые будут храниться?

 const { value: { name, email, password } } = await ctx.request.body().value;
 

Почему мы просто не используем следующую строку вместо приведенной выше?

 const { name, email, password }  = await ctx.request.body().value;
 

Или почему мы не используем const value = await ctx.request.body().value; , а затем используем value.name , value.email , value.password ?

Может ли кто-нибудь немного объяснить этот синтаксис?

Комментарии:

1. Это должно помочь: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

Ответ №1:

Как предложил Демипиксель в комментарии, изучение деконструкции объектов может помочь прояснить, что в основном разница между написанными вами утверждениями заключается в ожидаемом значении ctx.request.body() .

В первом случае вы предполагаете, что тело выглядит примерно так: {value: {value: {name: '', email: '', password: ''}} , поскольку вы ожидаете деконструировать объект с помощью ключа value , но вы уже получили .value ответ. Это может быть причиной того, что он может работать не так, как вы ожидали.

Во втором случае предполагается , что тело выглядит следующим образом: {value: {name: '', email: '', password: ''} , таким образом, если вы деконструируете ctx.request.body().значение, которое вы действительно получаете const { name, email, password } .

Надеюсь, это сделает все немного более ясным