
Aleh
09.10.2016
19:41:23
* as moment это ж не то по смыслу?

Nikita
09.10.2016
20:05:04
а есть способ в flow как-то проверить, что типы соответствуют друг другу, без переменных?
то есть без js кода

Vladimir
09.10.2016
20:11:30
Не совсем понял

Google

Михаил
09.10.2016
20:12:16

Aleh
09.10.2016
20:12:36

Михаил
09.10.2016
20:13:16
ну она же декларируется

Aleh
09.10.2016
20:13:40
не, там ж модуль
оно потом в экспорт

Nikita
09.10.2016
20:15:37
если не получается описать, как A в B передается

Aleh
09.10.2016
20:16:01

Vladimir
09.10.2016
20:17:37

Nikita
09.10.2016
20:17:42

Aleh
09.10.2016
20:18:18
нет конструктора

Google

マイク
09.10.2016
20:18:26
Непонятно, что нужно

Vladimir
09.10.2016
20:18:43
https://flowtype.org/try/#0PQKgBAAgZgNg9gdzCYAodAXAngBwKZgBiccYAvGAN6phhQkBcYAzhgE4CWAdgOaoC+Abky4CAIQCGbclRp1GLdtx4AaOQCMpTVp14DhqUAwaoAJngDGMKQQBuUsAA8mxOMPvSsTSdIqPhKEA

Nikita
09.10.2016
20:19:13
о, спасибо)
обожаю и ненавижу flow одновременно)
@vkurchatkin кстати:
default:
// eslint-disable-next-line
(action.type: null);
return state;
такой хак дает более вменяемую ошибку, чем action: null

Vladimir
09.10.2016
20:21:31
В 0.34 будет новый тип empty
Не уверен пока, какой профит, в текущем виде
Но по крайней мере можно будет не делать string & number больше

Nikita
09.10.2016
20:22:34
мм, мне такого не приходилось еще делать)

Vladimir
09.10.2016
20:23:42
Ну это иногда полезно для эзотерический конструкций с дженериками

Nikita
09.10.2016
20:24:37
самый неприятный для меня момент в flow + react, за последнее время, стал connect. То есть компоненты - все ок. Экшны и сторы - все просто збс. А вот момент, где они пересекаются, сложно проверить(

Vladimir
09.10.2016
20:25:03
Ну это скорее проблема редакса
Он не очень на статическую типизацию рассчитан

Nikita
09.10.2016
20:25:43
он вообще не нее не расчитан) с другой стороны, я не знаю как это сделать лучше

Алексей
09.10.2016
23:00:21

Дмитрий
10.10.2016
04:11:07
DateOnly.Format

Михаил
10.10.2016
06:31:33

Дмитрий
10.10.2016
08:56:29
тогда не будет использован оверрайд формата в DateTime
Понял)
Кроме как вынести ничего не выходит ?
interface HasFormat { new<T> (): T; FORMAT: string }
const toStatic = <T>(o:T)=>o.constructor as HasFormat
class DateOnly {
static readonly FORMAT = 'Y-m-d'
protected date: Date
public toString(): string{
let format = toStatic(this).FORMAT
return format
}
}

Mike
10.10.2016
16:55:07
Сталкивался кто-нибудь с тем что find references в саблайме с официальным плагином не все рефы находит (~80 файлов, залинкованы через /// <reference path)

Google

Nikita
11.10.2016
09:58:24
Что в дженериках Flow значит +?
declare class Promise<+R> https://github.com/facebook/flow/blob/master/lib/core.js#L563

Vladimir
11.10.2016
10:00:49
Ковариантность

Nikita
11.10.2016
10:05:10
типо ждем React.Component, а приходит Input extends React.Component?

Aleh
11.10.2016
10:10:31
типа может быть наследник

Andrey
11.10.2016
10:16:48
Я с реактовского чатика
Дык не очень понял, зачем тогда тайпскрипт, если можно юзать flow?

Aleh
11.10.2016
10:17:45
ну если ты в нпм ничего не держишь

Vladimir
11.10.2016
10:18:49
> @bipycxp
Дык не очень понял, зачем тогда тайпскрипт, если можно юзать flow
именно

Aleh
11.10.2016
10:19:06
накатить на существующий код походу проще flow, но я не уверен, потому что ts2 как бы и в js может...

Vladimir
11.10.2016
10:20:14
Только TS очень плохо транспилирует

Aleh
11.10.2016
10:20:23
в es6 нормально
)

Andrey
11.10.2016
10:24:32

Nikita
11.10.2016
10:25:50
да что ты не возьми - облысеешь) а еще @vkurchatkin достанешь))
ты можешь опционально потихоньку включать, на новом коде. Но как только ты поймешь, что flow ловит твои ошибки, тебе захочется покрыть типами все, и тут тебя ждет подлянка. Все покрыть никогда не получится, если у тебя не todo-list приложение)

Vladimir
11.10.2016
10:27:29
> @gusnkt
Все покрыть никогда не получится
Получится! Но придется рефакторить

Nikita
11.10.2016
10:27:48
ну либо с бешенным кол-вом дженериков)
кстати можно как-то посмотреть coverage по всей код-базе, а не 1 файлу?

Aleh
11.10.2016
10:28:55

Vladimir
11.10.2016
10:28:57
Написать скрипт

Nikita
11.10.2016
10:29:43

Google

Andrey
11.10.2016
10:30:00
чужие
Что, флов их не будет поддерживать?

Admin
ERROR: S client not available

Andrey
11.10.2016
10:30:31
Тс же тоже требует тайп дефнишнов для подключаемых модулей

Nikita
11.10.2016
10:30:46
flow не требует
find src -path 'src/**/*.js' -exec flow coverage {} \;
кто awk знает?) давайте допишем скрипт
кстати у меня прям неплохо так... больше 90% в основном

Vladimir
11.10.2016
10:39:18
> @gusnkt
больше 90% в основном
Это очень мало

Nikita
11.10.2016
10:39:41
ничоси
там у реакта много где не прописан return-type у рендера. я думаю в этом проблема)

Aleh
11.10.2016
10:40:24

Andrey
11.10.2016
10:40:49
Ок, спасибо

Nikita
11.10.2016
10:41:00
и там и там они, обычно, устаревшие)

Aleh
11.10.2016
10:44:15
ну типа
https://github.com/flowtype/flow-typed/tree/master/definitions/npm vs
https://github.com/DefinitelyTyped/DefinitelyTyped/
причем второе ставится через npm

Nikita
11.10.2016
10:50:04
в реальности нужно 2-3 дефинишна. и те не работают. ни тут, ни там
тот же react-redux, уже сколько раз обсуждали)

Ҫѐҏӗѫӑ
11.10.2016
12:49:43

Aleh
11.10.2016
12:49:59
возможно, я не пробовал

Google

Nikita
11.10.2016
14:36:38

Aleh
11.10.2016
14:39:12
почему?

Nikita
11.10.2016
14:42:44
потому что flow это и есть js. А ts - это ts. Просто сменить расширение не всегда получится
ну и я пробовал)) не просто так же я flow взял

Aleh
11.10.2016
14:44:14
noImplicitAny: false и меняй себе на здоровье
но кмк если уж меняешь, то типизируй

Vladimir
11.10.2016
14:45:40
Флоу кстати неплохо помогает даже вообще без аннотаций и // @flow
Просто в Атоме подсвечивает слабые места

Andrey
11.10.2016
14:46:37
в таком случае можно его заиспользовать