
Vasiliy
27.10.2016
12:12:32
мб помнит кто-нибудь)

Nikita
27.10.2016
12:12:57
не очень понимаю, как это можно через код сделать) частично вышеупомянутый кейс можно введя понятие иммутабельности/константности. Но не более того
мы не можем в коде запретить реакту сгонять за данными к серверу, например)

Vladimir
27.10.2016
12:13:31
Пожалуй компонент должен быть контрвариатным относительно пропсов, и тогда все должно работать

Google

Nikita
27.10.2016
12:14:23
я думал есть $Something<Props> типо такого для этого случая
а точно есть
setState же

Aleh
27.10.2016
12:14:35

Vladimir
27.10.2016
12:15:11
> @gusnkt
setState же
Это вариант

Андрей
27.10.2016
12:15:35

Nikita
27.10.2016
12:16:06
во, так должно сработать
неа =(

Vladimir
27.10.2016
12:23:43
Там по идее ReactClass надо использовать
Но я чет не могу понять, он вообще работает или нет
React.Component это инстанс класса

Nikita
27.10.2016
12:24:30
ммм, это родитель же, не?

Google

Vladimir
27.10.2016
12:24:40
По идее его как типа никогда не надо использовать
<Foo/> это React$Element

Nikita
27.10.2016
12:25:18
это да
но я именно сам класс хочу

Vladimir
27.10.2016
12:25:28
Foo это ReactClass

Nikita
27.10.2016
12:25:33
переписал на renderItem, в баню

Vladimir
27.10.2016
12:25:42
new Foo это React.Component
тоже верно
https://github.com/facebook/flow/issues/1777

Алексей
27.10.2016
12:56:38
а в чем отличие контракта от интерфейса?
интерфейс - explicit, контракт - implicit.
Интерфейс - проделарирован, контракт - подразумевается (может быть проделарирован в документации или еще где но не в коде)

Aleh
27.10.2016
13:29:23

Vasiliy
27.10.2016
13:30:35
если речь о design by contract (https://en.wikipedia.org/wiki/Design_by_contract), то почему бы и не в коде)
есть даже вещи по типу
https://github.com/codemix/babel-plugin-contracts
не пропагандирую, если что, just saying)

Vladimir
27.10.2016
13:43:29
Походу в скалу хотят добавить non nullable типы

Oleksandr
27.10.2016
13:51:24
давно уже периодически хотят

Vladimir
27.10.2016
13:51:50
https://github.com/lampepfl/dotty
Вот тут всякие ништяки

Oleksandr
27.10.2016
13:55:11
нууу там много чего, собственно сами DOT, а non-null уже такое)

Google

Andrey
27.10.2016
17:28:13

Андрей
27.10.2016
17:31:37
» если добавят, то все, лучший язык
+1 :)

Vladimir
27.10.2016
17:37:01
Ну и то что JVM, но это уже навсегда

Дмитрий
27.10.2016
17:38:27
В скале можно поучиться интересным подходам

Andrey
27.10.2016
17:42:00

Vladimir
27.10.2016
17:42:45
Ну это отдельная тема, наверняка 80% экосистемы не заводится

Andrey
27.10.2016
17:43:00
И стандартная либа отличная

Dreamerinnoise
28.10.2016
10:04:52
как вы в тс обходите вот этот случай:
render(){
const {children, ...other} = this.props;
return (
<div {...other}>{children}</div>
);
}
?

Oleksandr
28.10.2016
10:15:10
спред скоро зарелизят
а так _extends() :)

Vadim
28.10.2016
14:32:24
А реально ли как-то в ts типизировать формат строки? Например, указать что это должен быть определенный формат даты, или что строка должна содержать 5 букв?

Vadim
28.10.2016
14:33:01
И реально ли типизировать число, указав минимальное и максимальное значение?

Vladimir
28.10.2016
14:38:15
Нет

Vadim
28.10.2016
14:41:01
Интересно, а во flow для этого тоже не придумали что-нибудь?

Vladimir
28.10.2016
14:41:23
Нет
https://en.wikipedia.org/wiki/Dependent_type

Ivan
28.10.2016
14:53:01
можно в идрисе, https://www.youtube.com/watch?v=fVBck2Zngjo

Vladimir
28.10.2016
14:56:54
В статье полный список

Дмитрий
28.10.2016
16:46:49

Google

Ave
28.10.2016
18:16:01
Вот когда формат данных во фронте и формат который отдает api отличается например:
api отдает:
{
user_age: 23,
is_online: false,
}
а в сторе у тебя
{
age: 23,
isOnline: false,
}
то как православно назвать "сервис" который будет заниматься конвертацией структур туда и обратно?

Vasiliy
28.10.2016
18:25:16
наверное, можно humps назвать https://github.com/domchristie/humps (:
вообще, обычно это называют object mapper

Ave
28.10.2016
18:29:41
нуу такое

Vasiliy
28.10.2016
20:07:52
я много находил на гитхабе велосипедов, можно выбрать по вкусу, например https://github.com/MichalZalecki/mappet или вот привет из .туе https://github.com/loedeman/AutoMapper/wiki/Getting-started (%

Ave
28.10.2016
21:15:16
красота

Admin
ERROR: S client not available

Aleh
29.10.2016
09:06:18
Мы руками мапим, причём не просто, а в объекты нужных классов

Ave
29.10.2016
09:30:31

Aleh
29.10.2016
10:27:18
normalize/denormalize вроде
Или transform reverseTransform
Мапим после получения в хттп/ещё где

Ave
29.10.2016
10:40:40
thx!

Ҫѐҏӗѫӑ
30.10.2016
08:29:53
https://github.com/facebook/flow/blob/master/Changelog.md#v0320
первое в new features
https://flowtype.org/try/#0PQKgBAAgZgNg9gdzCYAoVAXAngBwKZgCGYAvGAN4A+qAkAB4BcYAzhgE4CWAdgOYA0qMELBYA-Ey4BXALYAjPG1SUAvgG4gA
это ведь то, что тебе надо, @gusnkt ?

Viacheslav
30.10.2016
15:28:28
как сделать чтобы flow ругался на number + string, boolean + number, null + number, void + number?

マイク
30.10.2016
15:29:14

Google

Vladimir
30.10.2016
15:29:18
Никак
Это сделано специально

Viacheslav
30.10.2016
15:29:40
почему?

マイク
30.10.2016
15:29:47
Жизнь боль

Vladimir
30.10.2016
15:30:03
Типа JS, тут так можно

Viacheslav
30.10.2016
15:30:30
особенно печатит number + void

Vladimir
30.10.2016
15:30:45
https://github.com/facebook/flow/issues/2452
Меня тоже
Скорее всего исправят в ближайшее время

Vasiliy
30.10.2016
15:32:22
а кто-нибудь использует https://github.com/flowtype/vim-flow ? у меня опять какие-то вимопроблемы – все зависает, когда сохраняешь файл, но его отпускает когда ctrl+c нажимаешь
сейчас сам попробую покопать
причем, когда let g:flow#enable = 0 и вызываешь FlowMake руками, то все ок

Viacheslav
30.10.2016
15:34:02
в ts, если что number + void кидает ошибку
+ есть tslint который ругается на все остальное
недавно, кстати, в tslint завезли возможность писать проверки на основе информации о типах
это открывает новые возможности

Vladimir
30.10.2016
16:03:04
В общем, я лично согласен с тем, что это должно быть ошибкой, особенно number + ?number

Vasiliy
30.10.2016
16:43:43
там мессадж в коммите mroch: arguably, we should error if you do null + number or undefined + number... we can certainly have that debate here or later. but we definitely should not be treating the result as a string like we do now.
да, жопа какая-то, надо отписаться там

Alexander
30.10.2016
16:56:55
Ну с другой стороны, если в рантайме результатом является string, то чё бы его не выводить
В смысле, если конечный тип определяется верно

Vasiliy
30.10.2016
17:05:19
обычно это не то, чего хотели, т.е. если умышленно такое делать, то можно использовать suppress_comment (/ any?)