2015-11-11 3 views
2

У меня немного мозговый мозг. Есть ли сокращение для этого в ES6/ES7?Есть ли сокращение для этого в ES6/ES7?

res.locals.hello = hello

Я попробовал несколько различных комбинаций, но не могут получить что-нибудь, чтобы придерживаться.

+1

0 Что вы ищете? Я не могу придумать разумного способа, которым это могло бы быть упрощено. – Harangue

+0

Возможно, вы думаете о '{hello}', который преобразуется в '{hello: hello}'. Это одно из многих усовершенствований, сделанных для объектных литералов в ES6. – Sampson

+0

Ну, если я хотел разрушить это наоборот, я мог бы использовать 'let {hello} = res.locals'. Я надеялся, что есть аналогичная стенограмма для перехода в другое направление. – Antoine

ответ

4

Я не верю, что существует более короткий способ произвольного присоединения нового ключа к объекту и автоматического назначения ссылки с тем же именем. Тем не менее, во время строительства вашего locals объекта, вы можете просто предоставить обработчик:

let res = { 
    locals: { hello } 
}; 

Это фактически то же самое, как:

let res = { 
    locals: { 
     hello: hello 
    } 
}; 

Это расширение было добавлено в ES6, и поддерживается всеми транспилерами, насколько мне известно.

+0

Спасибо за ответ, я собирался написать то же самое сам. То, что я собираюсь использовать, - 'res.locals = {hello}' – Antoine

+1

@ AnthonyMayfield Glad Я мог бы помочь. Счастливое кодирование! – Sampson

0

Да, при условии, что res уже существует, используя res.locals = { hello } работает просто отлично.

+1

Если 'res.locals' имеет другие свойства,' res.locals = {hello} 'удалит их. – Mathletics

+0

Если мне нужно, я мог бы использовать Object # assign, но это не проблема, с которой я сталкиваюсь в данный момент. – Antoine

+0

На самом деле это работает лучше, если 'res.locals' НЕ существует. – Mathletics

Смежные вопросы