#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 }
.
Надеюсь, это сделает все немного более ясным