@react_js

Страница 2472 из 5115
kana
01.11.2017
19:35:07
number => void

пиша Function, ты теряешь часть типизации, зачем тогда флоу вообще

kana
01.11.2017
19:37:21
мы теряем типизацию аргументов и результата

Google
kana
01.11.2017
19:37:27
мы можем передать же любую функцию

Petr
01.11.2017
19:37:41
Todo.propTypes = { onClick: PropTypes.func.isRequired, completed: PropTypes.bool.isRequired, text: PropTypes.string.isRequired } type Props = { onClick: Function, completed: bool, text: string } Вопрос был про это

Stepan
01.11.2017
19:38:06
А как ведёт себя флоу при импорте нетипизированных модулей?

Petr
01.11.2017
19:39:36
надо определить any или скачать уже существующий интерфейс для подключаемого модуля через flow-typed

Stepan
01.11.2017
19:49:20
Спасибо

Nikita
01.11.2017
19:49:30
Пока тут флоу ,как такое типизировать this.props.children[0].props.value?

children очевидно массив реакт компонентов

В type react есть ChildrenArray ,но он только говорит какие элементы должны быть в массиве

Petr
01.11.2017
19:55:09
type Props = { children: (props: { value: string }) => React.Node }

Maxim
01.11.2017
19:55:49
действительно, как вот такое типизировать?

children: PropTypes.node.isRequired,

:Node? так такого вроде бы нет

Google
Nikita
01.11.2017
19:57:29
Petr
01.11.2017
19:58:29
а блин

type Props = { children: Array<(props: { value: string }) => React.Node > }

если так не сработает я хз ?

Maxim
01.11.2017
19:59:30
короче пока на prop types посижу

для обучения хватит

Nikita
01.11.2017
20:00:20
Alex
01.11.2017
20:17:40
Не сработало :C
В ТС не только массив, там элемент | массив элементов

Думаю тут так же

Alex
01.11.2017
20:18:17
Тоже верно

Petr
01.11.2017
20:21:48
Так если есть Flow, зачем propTypes?
Их нельзя сравнивать, одно другому не мешает, просто flow мощнее

propTypes всё равно нужен в реакте, например для context

Alex
01.11.2017
20:23:18
type ReactChild = ReactElement<any> | ReactText;

Nikita
01.11.2017
20:25:41
type ReactChild = ReactElement<any> | ReactText;
Это сработает ,но флоу скажет ,что нужно типизировать пропсы чилдрена

Evjeni
01.11.2017
20:25:57
propTypes всё равно нужен в реакте, например для context
Ну тогда использовать propTypes только для контекста

Alex
01.11.2017
20:26:33
Там же any

Nikita
01.11.2017
20:27:28
Там же any
Все равно запросит ,мне кажется мне надо просто отказаться от таких элементов в пользу объектов

Скажет ,что uncovered code

Google
Alex
01.11.2017
20:30:15
Ты хочешь юзать пропы чилдрена?

Dmitry
01.11.2017
20:30:35
ребят как часто вам приходится делать optimistic updates ?

Alex
01.11.2017
20:30:54
Да
Можно пример, для чего?

Nikita
01.11.2017
20:33:10
Можно пример, для чего?
Для селекта, <Select> <Option value="foo" /> <Select/>

Alex
01.11.2017
20:34:37
Я делал ремап чилдренов изначально они как jsx .element я брал проп type и свитчил по нему кейсы в разные типы чилдрена т.е. Получал уже конкретный тип элемента

Petr
01.11.2017
20:35:46
Для селекта, <Select> <Option value="foo" /> <Select/>
Делай проверку типов пропса в Option, а в Select просто { children: React.Node }

Alex
01.11.2017
20:36:26
Думаю если ты так сделаешь, то ругаться не будет потому что сможешь преобразовать jsx.element в конкретный тип, а у него пропы будут уже типизированны

Nikita
01.11.2017
20:37:15
Ладно ,спасибо ,изначально кажется идея неправильная

Так как пропсами компонента должен пользоваться только он

Petr
01.11.2017
20:38:32
Верно

Andrew
01.11.2017
21:03:35
Сейчас будет тупой вопрос. Но все таки какие прям супер очевидные плюсы от типизации

Код легче понять,скейлить его намного проще ?

Yaroslav
01.11.2017
21:05:07
дебажить проще

Stepan
01.11.2017
21:07:37
Собственно, и всё

Victor
01.11.2017
21:07:54
еще крутое автодополнение в редакторе же)

kana
01.11.2017
21:08:50
самое очевидное же - это меньше багов из-за того, что запихнули что-то туда, куда это пихать не нужно

Andrew
01.11.2017
21:10:40
Ну оно и так все скрашится если типы не совпадут, наверное больше заставляет думать о том что куда пихаешь

Google
Alex
01.11.2017
21:11:49
Исключает большое кол. Ошибок, плюс рефакторинг по всему апу

Andrey
01.11.2017
21:17:52
Я из типизированного мира, но в принципе есть места, где удобно не иметь типа...

kana
01.11.2017
21:18:08
вот, кстати



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

andretshurotshka?❄️кде
01.11.2017
21:20:59
Andrey
01.11.2017
21:21:10
У нас фронтендер в экшен добавляет кроме payload свойство location. И когда этот экшен пробегает через мидлвари, одна из них проверяет этот локейшен и если он есть, редиректит всю страницу на указанный урл

Alex
01.11.2017
21:21:13
Тоже интересно, считал так когда переходил с php на C#, особенно было сложно с массивами, но со временем пришло понимание и поменялось мышление, теперь очень редко бывают проблемы

Andrey
01.11.2017
21:22:45
В случае с типами, ты бы должен был определить все возможные поля, какие экшен может принимать... что наверное возможно, но элегантно бы не смотрелось наверное

С payload вообще не вариант, он всегда будет разный

Andrew
01.11.2017
21:23:57
Я прост кроме js ничего не знаю по этому трудно судить о нативной типизации ??‍♀️

Andrey
01.11.2017
21:24:39
Я только в js заезжаю, подробнее не скажу. Но отсутствие типов меня раздражает.

Andrew
01.11.2017
21:25:32
Ну есть вообще-то 6 типов

Andrey
01.11.2017
21:25:32
Мне вообще не сколько типы нужны, сколько суппорт от IDE

На яве я пишу, в документацию не смотрю, автодоролнения все решают ;)

6 недостаточно, для описания мира ;)

Andrew
01.11.2017
21:28:05
Самой ад в js как по мне это работа с дробными числами

Google
Andrey
01.11.2017
21:31:51
Да это везде так. Но в яве есть подходящие абстракции которые дают работать с цифрами как с текстом.

Alex
01.11.2017
21:33:54
А что не так с добрыми?

Тип много знаков после запятой?

Есть же округление? Про форматирование не помню

Nikita
01.11.2017
21:41:47
childen: React.ChildrenArray<React.Element<typeof Option»
Спасибо, это и правду работает

andretshurotshka?❄️кде
01.11.2017
21:42:52
В флоу да, в тс нет)

Nikita
01.11.2017
21:43:56
вот, кстати
Так когда в качестве пропсов получаешь ,то Function ,а в месте где объявление типизируешь

или я не прав?

Anton
01.11.2017
21:57:57
Самой ад в js как по мне это работа с дробными числами
48ми битный real, или 16ти битный half float вообще разорвут на куски.

Котяй Негодяй
01.11.2017
22:37:37
Что-нибудь кроме redux-act(ions) уже придумали?

Dmitry
02.11.2017
00:50:55
«помните: реакт-роутер получился только с 4 версии, а редакс-форм вообще с 6-ой» (с) Е.Родионов

Можно кратко для тех кто ещё ни то , ни другое не использовал , что в старых версиях было такое, с чем я видимо , к счастью, и не столкнусь ?

Andrey
02.11.2017
01:17:04
Я думаю, что тебе надо у своего авторитета спрашивать.

Aleksei
02.11.2017
01:39:43
Ну вроде как data атрибуты отлично рендерятся в дом если не ошибаюсь, даже не 15 реакте. Как вариант, React 16 в помощь, ибо он все неизвестные примитиву пропсы, ну например, абвгд атрибута у дива нет, прорисовывает в дом, что такого рода селекторы по дата и не только атрибутам возможны.
Через дата атрибуты будем делать, да. Просто думал может есть автоматизированные решения какие-то. В проекте больше 50000 строк кода на фронте. Решили вкручивать потихоньку по мере необходимости

А не стандартизированные атрибуты это плохо. Такого у нас не одобрят) я недавно вкручивал оптимизацию первой отрисовки, которую Гугл рекомендует, с удалением body и переносом не блокирующих линков из хида. Так вой стоял страшный, что это мол не по w3c)

Дмитрий
02.11.2017
04:49:00
«Помните: реакт-роутер получился только с 6 версии»

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