@react_js

Страница 930 из 5115
Adel
10.02.2017
14:34:46
первый аргумент как получить?

Сергей
10.02.2017
14:35:00
ты его деструктурировал

const foo = ({ a, b, ...another }, forced) => {}

Adel
10.02.2017
14:35:33
обожди

Google
Adel
10.02.2017
14:35:36
вот пример

(attributes: {name, type}, options: {disabled}, someFactory, forced) => TYPES[type] && someFactory(attributes, disabled, forced)

при этом на присваивании это норм будет работать

Сергей
10.02.2017
14:37:36
тебе надо сначала получить ссылку на целый объект, чтобы им оперировать

это норм

вот так типы обычно записывают ))

Adel
10.02.2017
14:38:03
(attributes, options, someFactory, forced) => { const {name, type} = attributes; const {disable} = options; return TYPES[type] && someFactory(attributes, disabled, forced) }

я вынужден писать вот такое

Сергей
10.02.2017
14:38:21
ну понятное дело

Adel
10.02.2017
14:38:29
чего понятного-то

Сергей
10.02.2017
14:38:30
можно и инлайн))

Adel
10.02.2017
14:39:34
при присваивании я могу разобрать всю конструкцию произвольной глубины и не растерять первый уровень глубины, а в аргументах с чего-то хер, получаются функции с неименованными аргументами, что тоже так себе

Сергей
10.02.2017
14:39:55
чувак при приссваимвании у тебя уже есть ссылка на объект в области видимости

Google
Сергей
10.02.2017
14:39:59
в аргументах нет

вся разница



можно так

и проще

Adel
10.02.2017
14:41:01
ну на самом деле бабелизация делает промежуточные аттрибуты и отлично там есть ссылка

Сергей
10.02.2017
14:41:22
а вот в нативном коде нет

да в бабелизации ты не можешь получить к этой ссылке доступ

Adel
10.02.2017
14:41:48
ну могли бы и передать, если я явно это указываю, но в языке нет возможности указать явно и деструктурировать

Сергей
10.02.2017
14:41:52
суть в том, когда ты деструктурируешь аргумент, ты как бы говоришь, мне не нужен весь объект, только его поля

Adel
10.02.2017
14:41:53
либо одно либо другое

Adel
10.02.2017
14:42:23
ага и потом еще приписываю ...props и собираю потом обратно все это при прокидывании в дальнешие вызовы

Сергей
10.02.2017
14:42:24
но ты неправильно понимаешь аргументы в массиве тоже нельзя

Adel
10.02.2017
14:42:39
facotry({prop, ...props})

Сергей
10.02.2017
14:42:40
const [a, { b }] = c

та же проблема

ага и потом еще приписываю ...props и собираю потом обратно все это при прокидывании в дальнешие вызовы
не деструктурируй, используй дот-нотацию и всё ок будет так даже читать немного проще

Adel
10.02.2017
14:43:28
пфф ну что за полумеркель

Google
Adel
10.02.2017
14:43:53
мы вам дадим деструктуризацию, но вы, ребята "не деструктурируй, используй дот-нотацию и всё ок" ))))

Adel
10.02.2017
14:44:09
я понимаю, как из этого выкрутиться

вопрос в том, что я не хочу выкручиваться, я хочу как в присваивании)))

Сергей
10.02.2017
14:44:29
я понимаю, как из этого выкрутиться
использовать дот-нотацию там где нужно

Adel
10.02.2017
14:44:37
там где вынужден

Adel
10.02.2017
14:44:47
однострочники тогда сосут

Сергей
10.02.2017
14:45:26
аргументы это массив, там нет имен, есть только порядок поэтому так нельзя сделать если бы было: const foo = (a as { b }) => {}

Adel
10.02.2017
14:45:31
Сергей
10.02.2017
14:45:47
ну тогда это твои проблемы))) написать точку не проблема

Adel
10.02.2017
14:45:53
аргументы это не массив все мы это давно знаем))))

Adel
10.02.2017
14:46:21
ну тогда это твои проблемы))) написать точку не проблема
ну вот я вынужден, потому что "пошел ты нахер, вот почему", и это обидно(

Сергей
10.02.2017
14:46:26
аргументы это не массив все мы это давно знаем))))
array-like в частности деструктуризация такая же как и с массивом)))

Adel
10.02.2017
14:46:53
make js great again

Сергей
10.02.2017
14:47:14
es.delete(6)

кстати, можно предложить в стандарт const foo = (a as { b }) => {} врятли многие проголосуют конечно

Dmitriy
10.02.2017
14:48:33
аргументы это массив, там нет имен, есть только порядок поэтому так нельзя сделать если бы было: const foo = (a as { b }) => {}
почему нельзя? было (options: {someOption, anotherOption}, forced) => { ...} стало function(options, forces) { var someOption = options.someOption, anotherOption = options.anotherOption; ...}

Google
Сергей
10.02.2017
14:49:20
суть в том, что такой синтаксис всё сломает

да и к тому же : в деструктуризации убирает ключ из области видимости а если он в аргументах будет работать по другому, будет неконсистентно

Dmitriy
10.02.2017
14:50:28
на первый взгля вроде ни с чем не конфликтует

а это потому что в деструктуризации надо вернуть ключ в область видимости

Сергей
10.02.2017
14:51:41
{ a: b } — b есть, a — нет не просто так добавили

а теперь ты говоришь { a: b } — будут оба ??

Admin
ERROR: S client not available

Dmitriy
10.02.2017
14:53:14
я ж не говорю что это будет обратно совместимо

Сергей
10.02.2017
14:53:19
не добавят) никогда

Дмитрий
10.02.2017
14:53:42
я ж не говорю что это будет обратно совместимо
У нас тут с MooTools из 2006 года совместимость

Сергей
10.02.2017
14:53:47
в массивы может быть что-то вроде: const [ a, { b } as c, ...other ] = prop тогда да, было бы удобнее

Дмитрий
10.02.2017
14:53:54
А ты в деструктуризации что-то ломать хочешь))

Сергей
10.02.2017
14:55:12
тогда и в функциях можно было бы делать const foo = (a, { b } as c, ...other) => {} Но вопрос захотят ли

кстати было бы уместно, ибо в модулях похожая штука

Adel
10.02.2017
15:05:32
Я пока не догоняю, а почему не const foo = (a, c: { b }, ...other) => {} В присваивании же так и ничего не теряется

Сергей
10.02.2017
15:12:20
Я пока не догоняю, а почему не const foo = (a, c: { b }, ...other) => {} В присваивании же так и ничего не теряется
потому что в объекте a: { b } скрывает a из области видимости, и если в массиве и аргументах показывать, это будет не очевидно и порождать странные эффекты

Adel
10.02.2017
15:12:44
Ничего он не скрывает

Сергей
10.02.2017
15:12:52
бля

Google
Adel
10.02.2017
15:13:08
Так стой

Сергей
10.02.2017
15:13:12
const { a: { b } } = { a: { b: 1 } } console.log(a, b)

запусти

Adel
10.02.2017
15:13:31
Я проверю, конечно, но у меня в коде это есть

Либо меня глючит и тогда соррян

Сергей
10.02.2017
15:13:56


Pavel
10.02.2017
15:19:45
Забавная штука class If extends React.Component { static propTypes = { condition: React.PropTypes.bool }; render () { if(this.props.condition) { return this.props.children; } return null; } } export default If;

<IF condition={true}><div /></IF>

Сергей
10.02.2017
15:21:11
класс не нужен

Дмитрий
10.02.2017
15:21:15
ng-if

Сергей
10.02.2017
15:21:36
const If = ({ cond, children }) => cond ? children : null

Pavel
10.02.2017
15:22:43
:+1:

Pavel
10.02.2017
15:46:22
Расцветка сочная. ЧТо за редактор и схема?

Mike
10.02.2017
15:46:46
похоже на VSCode

Pavel
10.02.2017
15:48:29
Mike
10.02.2017
15:48:38
не ясно нафиг на скрине импортится PropTypes, если юзается все равно React.PropTypes

Pavel
10.02.2017
15:48:47
ничоси

Страница 930 из 5115