@typescript_ru

Страница 88 из 669
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
* as moment это ж не то по смыслу?
а просто import 'moment' не катит?

Aleh
09.10.2016
20:12:36
а просто import 'moment' не катит?
так а пользоваться им потом как О.о

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

Aleh
09.10.2016
20:13:40
не, там ж модуль

оно потом в экспорт

Nikita
09.10.2016
20:15:37
Не совсем понял
type A = {}; type B = {}; A === B;

если не получается описать, как A в B передается

Aleh
09.10.2016
20:16:01
ну она же декларируется
да, она декларируется на уровне модуля

Vladimir
09.10.2016
20:17:37
type A = {}; type B = {}; A === B;
А почему без js?

Nikita
09.10.2016
20:17:42
да, она декларируется на уровне модуля
https://github.com/moment/moment/blob/develop/moment.d.ts#L459

А почему без js?
ну, можно и с JS)

Aleh
09.10.2016
20:18:18
https://github.com/moment/moment/blob/develop/moment.d.ts#L459
у нее тайпинги неправильные

нет конструктора

Google
マイク
09.10.2016
20:18:26
ну, можно и с JS)
А пример можно?

Непонятно, что нужно

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
он вообще не нее не расчитан) с другой стороны, я не знаю как это сделать лучше
вот это можно прикрутить обратно к React https://github.com/ngrx/store

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

Михаил
10.10.2016
06:31:33
DateOnly.Format
тогда не будет использован оверрайд формата в DateTime

Дмитрий
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 файлу?

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
Тс же тоже требует тайп дефнишнов для подключаемых модулей
но в тс они могут идти уже в самих пакетах(moment, redux) или через пакеты в скоупе @types

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, уже сколько раз обсуждали)

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
Просто в Атоме подсвечивает слабые места
т.е. он может работать как обычный линтер? и не нужно модифицировать код?

в таком случае можно его заиспользовать

Страница 88 из 669