@typescript_ru

Страница 63 из 669
Nikita
13.09.2016
14:06:58
https://flowtype.org/try/#0PQKgBAAgZgNg9gdzCYAoVAXAngBwKZgCqOAJgIYZ4AycA5gJYB2AggMYb1yNgC8YA3qjBhs+AFxgA5M0IAVABIB9QgAUAIs1kBRRVQDyAcQCSAOUkAaIWBxks8MiQkBnDACcmtVAF8A3OlEExOSUKmROTghwriRsHFy8AlYBEtJySqoa2ooqzADKuQDqegBKahZWNnZwDs5uHt5+mLgEzACuGAAWsZzcfEEU1HRM3fEAPkSkA6HhkdEjjI0BYG2duRgDCYLC8AyMte6MtJbCNjNRjmAuB56+6KxcLmBM9BxkMGsDEisdH5SbYDsmCkLNYwhFzsCwLdUFBWox2D0wGR2h0ABQuT7LFG-Ah8Z6vd7rSjmJEIrhfFHzACUYApqyJBC2lwQL1YHTAqLIZMYADoAjSmcJWGECKkFMp1JodPpjGYxFZhMJXHgMK1XNxBYrhDydRjiQqtQChntSXFeZV7CQDcJblrhU5RTJxRkpdk8oUyhJgMAwAgOlgRB08Mqnk4wIw4GBg64ogBCAD81rAytV6sShsVOp5erwxwzoLO0QkXLNPIt1StAEgbX4tSQ8FBkTAMPKMym1dwc7Wod4gA

ну и что за говно?(

мне обещали, что flow такое словит, а я только что минут 20 искал ошибку, потому что нельзя использовать константы, они не нужны

Google
Mike
13.09.2016
14:08:45
я вообще не понимаю почему весь js мир живёт без них

Nikita
13.09.2016
14:11:08
ну типо flow все найдет и даст по рукам где нужно

а flow наплевать с высокой колокольни

Mike
13.09.2016
14:12:53
я за константы ибо ещё никто не убедил меня в том что они вредны

я на тайпе пишу, и хорошего решения для строковых энамов пока не нашёл. Есть вариант, но он мне до конца не нравится

Nikita
13.09.2016
14:13:44
да не то, что вредны. просто с flow их нельзя юзать. но это типо потому что они не нужны. а не деле, flow не работает. как и TS впрочем

Mike
13.09.2016
14:14:25
просто с flow их нельзя юзать что значит нельзя?

да, вбсолютной защиты не дают, сильно лучше чем на голом js писать

Nikita
13.09.2016
14:14:54
flow + redux, ок)

хз, я не вижу плюсов

то есть большая часть логики - это редьюсеры + экшны. так вот оно там не работает)

и я выше пример скинул

@vkurchatkin что я делаю не так?

Google
Aleh
13.09.2016
14:19:28
@gusnkt payload отстой

ts 2 кстати обрабатывает эту ситуацию

Nikita
13.09.2016
14:21:09
https://flowtype.org/try/#0PQKgBAAgZgNg9gdzCYAoVAXAngBwKZgCqOAJgIYZ4AycA5gJYB2AggMYb1yNgC8YA3qjBhs+AFxgA5M0IAVABIB9QgAUAIs1kBRRVQDyAcQCSAOUkAaIWBxks8MiQmDhw+A0YSAzhgBOTWlYAvqiBANzoogTE5JQqZJ6eCHA+JGwcXLwCVpES0nJKqhraiirMAMplAOp6AEpqFlY2dnAOTlbCNglJKV6+-kEh4Zi4BMwArhgAFmmc3HzRFNR0TDMZAD5EpItxXcmp7LNDkWDjU2UYi5nOYG5MvX6MtJYd8Yl79-1h6Kxc3mBM9A4ZBg50WElOk1BlCuN2WHikFmsr26jgRYC+qCgY0YBwyZAmkwAFN4wScCVCCHwAUCQRdKOYwGRcfCIatGABKMDg8l0gjXRKA1iTMCEpnpRgAOkinOuwlY8QIeQUynUmh0+mMZjE7RcPjwGDGPm4spcwgl5pJ9J1ptu8LFswlTXsJAltut6PCpvlnkVMmVhTVJXKVXqEmAwDACEmWBEkzwev+njAjDgYHjPmSAEIAPzuvUGo1ZU2m80Sy14Z7Fl67HqM5mO2zOhs1kioACQwi+ppIeCg+JgGG1Vfzhu45c96JCQA

Vladimir
13.09.2016
14:21:11
flow + redux, ок)
Нет, это flow пока не ловит

Nikita
13.09.2016
14:21:22
поменял payload, ваще ничего не изменилось

Vladimir
13.09.2016
14:21:34
в смысле, dead code

Nikita
13.09.2016
14:21:38
Нет, это flow пока не ловит
да он вообще не чекает то что внтури case, походу

Vladimir
13.09.2016
14:21:50
да, он знает что это dead code

но не кидает ошибок

Nikita
13.09.2016
14:22:08
збс) вот об этом надо говорить)

а не о том, как хорошо с flow)

Aleh
13.09.2016
14:22:25
ts 2 здесь победил конечно

Nikita
13.09.2016
14:22:51
ts 2 здесь победил конечно
а плейграунд где для ts2 есть?

Vladimir
13.09.2016
14:22:52
ну это объективная проблема, но она не приводит к рантайм ошибкому

Aleh
13.09.2016
14:22:59
а плейграунд где для ts2 есть?
я локально смотрел

Vladimir
13.09.2016
14:23:02
збс) вот об этом надо говорить)
Сейчас покажу решение

Aleh
13.09.2016
14:23:05
плей только 1.8 умеет

Nikita
13.09.2016
14:23:23
Aleh
13.09.2016
14:23:33
просто 1.8 вообще не понимает этих стринг тайпов

https://www.typescriptlang.org/play/index.html#src=%2F*%20%40flow%20*%2F%0D%0A%0D%0Atype%20UpdateLoginAction%20%3D%20%7B%0D%0A%20%20type%3A%20'AUTH_UPDATE_LOGIN'%2C%0D%0A%20%20payload%3A%20string%0D%0A%7D%3B%0D%0A%0D%0Atype%20UpdatePasswordAction%20%3D%20%7B%0D%0A%20%20type%3A%20'AUTH_UPDATE_PASSWORD'%2C%0D%0A%20%20payload%3A%20string%0D%0A%7D%3B%0D%0A%0D%0Atype%20AuthAction%20%3D%20UpdateLoginAction%20%7C%20UpdatePasswordAction%3B%0D%0A%0D%0Atype%20AuthState%20%3D%20%7B%0D%0A%20%20login%3A%20string%2C%0D%0A%20%20password%3A%20string%0D%0A%7D%3B%0D%0A%0D%0Aconst%20initialState%3A%20AuthState%20%3D%20%7B%20login%3A%20''%2C%20password%3A%20''%20%7D%3B%0D%0A%0D%0Afunction%20auth(state%3A%20AuthState%20%3D%20initialState%2C%20action%3A%20AuthAction)%20%3A%20AuthState%20%7B%0D%0A%20%20switch%20(action.type)%20%7B%0D%0A%20%20%20%20case%20'AUTH_UPDATE_LOGIN'%3A%0D%0A%20%20%20%20%20%20return%20%7B%0D%0A%20%20%20%20%20%20%20%20password%3A%20state.password%2C%0D%0A%20%20%20%20%20%20%20%20login%3A%20action.payload%0D%0A%20%20%20%20%20%20%7D%3B%0D%0A%20%20%20%20case%20'AUTH_UPDATE_PASSWD'%3A%20%2F%2F%20why%20there%20is%20no%20error!%3F%0D%0A%09%20%20return%20%7B%0D%0A%20%20%20%20%20%20%20%20password%3A%20action.payload%2C%0D%0A%20%20%20%20%20%20%20%20login%3A%20state.login%0D%0A%20%20%20%20%20%20%7D%3B%0D%0A%20%20%20%20default%3A%0D%0A%20%20%20%20%20%20return%20state%3B%0D%0A%20%20%7D%0D%0A%7D

Google
Vladimir
13.09.2016
14:23:45
к сожалению, от большинства логических ошибок тайп чекер не спасет

https://flowtype.org/try/#0PQKgBAAgZgNg9gdzCYAoVAXAngBwKZgCqOAJgIYZ4AycA5gJYB2AggMYb1yNgC8YA3qjBhs+AFxgA5M0IAVABIB9QgAUAIs1kBRRVQDyAcQCSAOUkAaIWBxks8MiQmDhw+A0YSAzhgBOTWlYAvqiBANzoogTE5JQqZJ6eCHA+JGwcXLwCVpES0nJKqhraiirMAMplAOp6AEpqFlY2dnAOTlbCNglJKV6+-kEh4Zi4BMwArhgAFmmc3HzRFNR0TDMZAD5EpItxXcmp7LNDkWDjU2UYi5nOYG5MvX6MtJYd8Yl79-1h6Kxc3mBM9A4ZBg50WElOk1BlCuN2WHikFmsr26jgRYC+qCgY0YBwyZAmkwAFN4wScCVCCHwAUCQRdKOYwGRcfCIatGABKMDg8l0gjXRKA1iTMCEpnpRgAOkinOuwlY8QIeQUynUmh0+mMZjE7RcPjwGDGPm4spcwgl5pJ9J1ptu8LFswlTXsJAltut6PCpvlnkVMmVhTVJXKVXqEmAwDACEmWBEkzwev+njAjDgYHjPmSAEIAPzuvUGo1ZU2m80Sy14Z7Fl67HqM5mO2zOhs1kioACQwi+ppIeCg+JgGG1VdFzIkjDGMBg7Lz+sN3HLnvRISAA

Aleh
13.09.2016
14:24:11
так это как раз чисто типа ошибка ж

Vladimir
13.09.2016
14:24:27
Nikita
13.09.2016
14:24:27
я думал будет pattern-matching. но это ваще не то, это какая-то фигня)

Vladimir
13.09.2016
14:24:38
Паттерн матчинг - это в рантайме

Dreamerinnoise
13.09.2016
14:24:54
Vladimir
13.09.2016
14:25:08
(action: null) гарантирует что ты обошел все кейс

кейсы

Nikita
13.09.2016
14:25:47
хм, спасибо) но это прям ядреный такой хак

и не дающий никакой внятной ошибки

но спасибо)

Vladimir
13.09.2016
14:26:01
Ну такой, эдвансд

Nikita
13.09.2016
14:26:19
это типо undefined is not a function и без стектрейса

Vladimir
13.09.2016
14:26:23
Ну, когда ты знаешь зачем ты вставил этот кусок, понято, что ошбика в нем значит

Nikita
13.09.2016
14:26:27
иди, ищи, сука - вот что тебе говорит flow))

Vladimir
13.09.2016
14:26:38
Это верно - есть такая проблема

Флоу решает констрейнты, но это не всегда производит внятное сообщение об ошибке

Nikita
13.09.2016
14:27:06
Ну, когда ты знаешь зачем ты вставил этот кусок, понято, что ошбика в нем значит
ага, дебаг отключением кусков кода. еееей, этого не хватало в js))

а у них это хоть в роадмэпе есть, или насрать?

Google
Vladimir
13.09.2016
14:28:19
что именно?

Nikita
13.09.2016
14:28:30
резолвить такие ситуации?

Vladimir
13.09.2016
14:28:56
Ну кокнретно - да, и dead code, и exhaustive pattern matching есть

По факт все для этого есть в кодовой базе

Nikita
13.09.2016
14:29:19
еще бы константы разрешили использовать, кроме строк

было бы круто

Vladimir
13.09.2016
14:29:29
Где именно?

Nikita
13.09.2016
14:29:41
type UpdateLoginAction = { type: AUTH_UPDATE_LOGIN, payload: string };

Vladimir
13.09.2016
14:29:41
в свитче?

typeof

Admin
ERROR: S client not available

Nikita
13.09.2016
14:29:49
не, в свитче можно

Vladimir
13.09.2016
14:29:59
type: typeof AUTH_UPDATE_LOGIN,

Nikita
13.09.2016
14:30:12
а это будет не string?

Vladimir
13.09.2016
14:30:59
думаю нет

Nikita
13.09.2016
14:32:53
гм, работает)

в принципе это поможет избежать ошибок) спасибо)

Vladimir
13.09.2016
14:33:35
не, похоже не работает

Nikita
13.09.2016
14:33:43
у тебя в итоге будет доклад?) я думаю есть еще куча людей, которые на такое наткнутся)

https://flowtype.org/try/#0PQKgBAAgZgNg9gdzCYAoVBjOA7AzgFzAEEBVAFQAkB9EgBQBEiyBRKgGQHkBxASQDkwAXjAByUpRoMmrTrz4iA3OnwBPAA4BTMCTUATAIb4NbOAHMAltiIZ85nELABvVGDCrNALjfqNcKMXJqOkYWdm5+ABoXMDV9FXh9XS8CACdLU1QAXyVUdy0dAyNafVxcBDgU3Wtbe2FnVzyvMUDJENZaIgBlToB1DgAlehEo11j4uETk-DTsDOzlH2IAV3wAC2q7bAcCw2MzSw37AB9tPV3i0vLKw+wcvOW1zvxdh3qweAtsKZnTEZiSsoVJJgVLpLI5LB4QiWcy2fQwJ67LxEFarRFGV7vfZfUTDf6XIFNERgeaoKBLbA2TZgfSogAUBCRDzRzwxwhhcIRrI0ERpVJwyNRNwAlGBBY9uU5omVYRhVmA6fp+dgAHR5UVvVwYEpacRBKShWT8DzRVyuFIafBLFJbTVm1wqx2Mox-e2uD6WLxKmqqsYJXQqqCms3ze3a3BaZoSYLSKgdbp9QYiLzAYBgBCrFRuVYaC1gcy4MDYOBgXMpCoAQgA-MHzZbrbba2bHSrnTym6MAVdgd7Niq-RNdKgAJCuUNm3QaKC0mD4E1uhW9gVFpYwGDCpsWq02kHcpRjrJAA

Google
Nikita
13.09.2016
14:33:55
вроде не регуается

Vladimir
13.09.2016
14:34:47
не, не совсем правильно работает

Nikita
13.09.2016
14:35:02
пример?

Vladimir
13.09.2016
14:35:20
https://flowtype.org/try/#0PQKgBAAgZgNg9gdzCYAoVBjOA7AzgFzAEEBVAFQAkB9EgBQBEiyBRKgGQHkBxASQDkwAXjAByUpRoMmrTrz4iA3OnwBPAA4BTMCTUATAIb4NbOAHMAltiIZ85nELABvVGDCrNALjfqNcKMXJqOkYWdm5+ABoXMDV9FXh9XS8CACdLU1QAXyVUdy0dAyNafVxcBDgU3Wtbe2FnVzyvMUDJENZaIgBlToB1DgAlehEo11j4uESvbABXAFsAIw0UrJy84mn8AAtqu2wHAsNjM0sd+wAfbT1D4tLyytPsVZ91rc78Q4d6sHgLbGT8NLYUwjGIlMoVJJgVLpFboLB4QiWcy2fQwN6HLxEDabdFGT7fY5-UTDUG3CFNERgbLoKDTbA2XZgfTYgAUBAxLxx7zxwiRKLR3I0ESZDJwmOxDwAlGBxa9BU5omVkRhNmAWfpRdgAHR5aVfVwYEpacRBKShWT8DzRVyuFIafDTFJ7fU21xa93sowg12uH6WLwamrasYJXTWm3U12G3BaZoSYLSKgdbp9QYiLzAYBgBCbFRuTZLLTmXBgbBwMBLFIVACEAH5w7b7Y7nQ2be6tZ6ha3RmC7pDA7stSGJmGAJCuSM23QaKDMmD4K0+tUDsWl6YwGCS1t2h1OqGCpQTrJAA

а, не

это не пример

https://flowtype.org/try/#0PQKgBAAgZgNg9gdzCYAoVBjOA7AzgFzAA0wBeMAcgDEB5GigbnXwE8AHAUzACEBDAJzJgA3qjAAPAFxhWnOFGKoAvuix5CLaX0HlhE6RQBGMXhTArUUOHAAURAJRNLAV2wZ8ASxxgrtqZVp6exFlIA

Вот это точно пример

А вот так - работает

https://flowtype.org/try/#0PQKgBAAgZgNg9gdzCYAoVBjOA7AzgFzAGEwBeMAb1TDAHIAxAeUdoC4xsBXGGVAXwDc6fAE8ADgFMwAIQCGAJzKVqAD3YASANISRuADyjJcKMQB8-dFjyER7OYvIUwaugCMYs2mD6ogA

В общем литерал и строка - это отдельные типы, но про строку может быть известно, что она является инстансом литерала

но в typeof будет строка

Sergey
13.09.2016
14:39:07
Что это было?

Я даже подумать страшно, что такое потом где-то увидеть и прочитать

Nikita
13.09.2016
14:40:02
ага, я тоже не понял, что это))

Vladimir
13.09.2016
14:40:09
что именно?

Вот так можно

https://flowtype.org/try/#0PQKgBAAgZgNg9gdzCYAoVBjOA7AzgFzAA8wBeMAcgDEB5GigbnXwFMCAKIgSidSgFdsGfAEscYVhyIAuSrXpcwAb1QBfIA

Nikita
13.09.2016
14:40:55
последний пример

но для экшнов работает и хорошо)

Vladimir
13.09.2016
14:41:18
$Keys - это идеально для констант и прочего

Sergey
13.09.2016
14:41:55
Дык оно не работает )

Вон в предидущем примере - напиши без ошибок )

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