@typescript_ru

Страница 57 из 669
Nikita
02.09.2016
16:19:06
в реальном приложении он принимает union типов, которые можно описать

иначе типы нахрен не нужны, потому что не уберегут тебя от ошибок в рантайме

Ҫѐҏӗѫӑ
02.09.2016
16:19:46
но не нужно.

Nikita
02.09.2016
16:20:38
и народ, который говорит что тесты надо с кодом менять, а типы такой збс себе выход. Я представляю сколько времени может уйти на рефакторинг с типами в js)

Google
Nikita
02.09.2016
16:23:08
но хочется) я бы очень хотел, чтобы система типов уберегала от того, что редьюсер вернет стейт неправильный

и касательно flow в реакте. Что с children делать?

потому что в реакте оно почти хорошо, кроме children и отсутствия рантайм проверок. Может есть для babel плагин, который в propTypes конвертил бы проверки?

Mike
02.09.2016
16:24:45
вообще по более строгой типизации ещё можно будет посмотреть кастомные правила на TS Lint, но я тему глубоко не копал, позже займусь

Народ, а кто эклипсом как ide для typescript пользуется?

Aleh
02.09.2016
16:39:56
State мы экспортим также как и reducer, в root reducer собираются все reducer + State и получается вполне удобно

Nikita
02.09.2016
16:43:57
https://www.typescriptlang.org/play/index.html#src=type%20Action%3CP%3E%20%3D%20%7B%0D%0A%09type%3A%20string%2C%0D%0A%09payload%3A%20P%0D%0A%7D%0D%0A%0D%0Atype%20AsyncAction%3CS%2C%20P%2C%20H%3E%20%3D%20(%0D%0A%09dispatch%3A%20Dispatch%3CS%2C%20P%2C%20H%3E%2C%0D%0A%09getState%3A%20StateGetter%3CS%3E%2C%0D%0A%09helpers%3A%20H%0D%0A)%20%3D%3E%20void%3B%0D%0A%0D%0Atype%20DispatchAction%3CS%2C%20P%2C%20H%3E%20%3D%20Action%3CP%3E%20%7C%20AsyncAction%3CS%2C%20P%2C%20H%3E%3B%0D%0Atype%20Dispatch%3CS%2C%20P%2C%20H%3E%20%3D%20(action%3A%20DispatchAction%3CS%2C%20P%2C%20H%3E)%20%3D%3E%20void%3B%0D%0Atype%20StateGetter%3CS%3E%20%3D%20()%20%3D%3E%20S%3B%0D%0A%0D%0Atype%20Store%3CS%2C%20P%2C%20H%3E%20%3D%20%7B%0D%0A%09dispatch%3A%20Dispatch%3CS%2C%20P%2C%20H%3E%2C%0D%0A%09getState%3A%20StateGetter%3CS%3E%0D%0A%7D%0D%0A%0D%0A

18 строка

Vladimir
02.09.2016
16:47:58
> @gusnkt Я представляю сколько времени может уйти на рефакторинг с типами в js) а без типов - раз два, и готово. и 100 новых багов

> @gusnkt отсутствия рантайм проверок а зачем?

Google
Vladimir
02.09.2016
16:48:59
тесты писать гораздо дольше

и они менее надежно

и их сложнее дебажить

Nikita
02.09.2016
16:49:11
> @gusnkt отсутствия рантайм проверок а зачем?
потому что у тебя есть внешний мир

и смотри) я не против типов) я против сложности, которую они вызывают. Я показал сложность выше. Если я ошибаюсь - покажи код)

тесты писать гораздо дольше
ну то есть если есть типы - и тесты не нужны?)

Vladimir
02.09.2016
16:50:40
Нужно меньше тестов чтобы получить тотже уровень увернности

Andrey
02.09.2016
16:50:46
Vladimir
02.09.2016
16:50:50
Особенно при рефакторингах

Nikita
02.09.2016
16:51:48
меньше - это меньше каких тестов?

Vladimir
02.09.2016
16:52:14
просто - меньше

Nikita
02.09.2016
16:52:34
я не понимаю такой формулировки)

Vladimir
02.09.2016
16:52:57
все несколько абстрактно, но я говорю об “уровне уверенности” в коде

Nikita
02.09.2016
16:53:04
меньше - сравнительная форма) меньше должно быть чего-то. У маши яблок меньше чем у пети. Тут понятно все)

Vladimir
02.09.2016
16:53:05
Такой термин имеет смысл?

Nikita
02.09.2016
16:53:34
я понимаю о чем ты. Но я не понимаю, какие тесты я могу выкинуть с типами, чтобы быть уверенным в своем коде

например отсутствие рантайм проверок в деве на js меня заставляют нервничать)

Vladimir
02.09.2016
16:54:43
Так вот, конкретное утверждение - для того чтобы получить уровень уверенности, который я получаю при 100% покрытии типами и 0% покрытии тестов, только с помощью тестов, мне нужно 100% покрытие тестами

что гораздо дольше

Google
Mike
02.09.2016
16:55:00
https://www.typescriptlang.org/docs/handbook/decorators.html

Nikita
02.09.2016
16:55:04
и я все еще напоминаю - я подрубил flow и с удовольствием использую его там, где это возможно без десятка дженериков)

Mike
02.09.2016
16:55:11
это кто-нибудь использует?

Nikita
02.09.2016
16:55:25
Vladimir
02.09.2016
16:55:28
дженерики - это хорошо, а не плохо

Nikita
02.09.2016
16:55:43
для коллекций - это хорошо)

Vladimir
02.09.2016
16:55:50
хорошо для всего

Nikita
02.09.2016
16:55:50
для всего кода - это ад

ну да)

иди на boost посмотри

マイク
02.09.2016
16:55:58
инварианты/контрварианты ещё лучше

Vladimir
02.09.2016
16:56:14
дженерики - это просто способ композиции типов

не нравится - можешь копи пейстить

Nikita
02.09.2016
16:56:37
нравится не нравится. Я не понимаю в чем смысл)

Ҫѐҏӗѫӑ
02.09.2016
16:56:45
и их сложнее дебажить
если у тебя жасмин, джест, мока или ава, то да

с tape все ок

Vladimir
02.09.2016
16:56:58
> @chicoxyzzy если у тебя жасмин, джест, мока или ава, то да я не про то

Nikita
02.09.2016
16:57:02
когда ты пишешь код - должен быть смысл у каждого действия

мне проще написать лишний тест (какой такой лишний?), чем писать везде дженерики ради непонятно чего

Vladimir
02.09.2016
16:57:41
Лол) так дженерики ты пишешь, тебя никто не заставляет

Google
Vladimir
02.09.2016
16:57:59
Я пишу дженерики, чтобы добавить типам струтуры

Nikita
02.09.2016
16:58:15
блин)

я признаю - идиот и не понимаю ничего) покажи как надо?

Vladimir
02.09.2016
16:58:39
Как надо - что именно?

Nikita
02.09.2016
16:58:53
ну, свои flow дефинишны на redux, напримре?

я хотя знаю что ты скажешь))

ты не используешь redux?))

Vladimir
02.09.2016
16:59:05
на сам redux?

нет конечно)

Nikita
02.09.2016
16:59:18
ну ясное дело))

Vladimir
02.09.2016
16:59:47
давай набросаю концептуально

Nikita
02.09.2016
16:59:57
ну тогда то что используешь) потому что с redux, для меня, это нереально. Я выше накидал почему)

マイク
02.09.2016
17:00:17
покажи код

Aleh
02.09.2016
17:00:18
マイク
02.09.2016
17:00:21
что ты там с дженериками делаешь

ничего непонятно

Google
Vladimir
02.09.2016
17:03:04
> @mkusher абсолютно нет, тесты дают гораздо большую уверенность я говорю персонально

Aleh
02.09.2016
17:03:16
если у тебя жасмин, джест, мока или ава, то да
да легко их дебажить(моку), остальные не знаю

Vladimir
02.09.2016
17:03:22
ибо тесты можно зафакапить так, что они не будут ничего тестировать

Nikita
02.09.2016
17:03:32
типы тоже

any поставил, считай нет типов больше)

Aleh
02.09.2016
17:03:48
> @mkusher абсолютно нет, тесты дают гораздо большую уверенность я говорю персонально
function sort<T?a: T[]): T[] { return a; } как типы покажут, что логика правильная?

Vladimir
02.09.2016
17:04:15
типы не показывают, что логика правильная

просто большая часть ошибок - не в логике

Nikita
02.09.2016
17:04:31
it('should?') =)

Aleh
02.09.2016
17:04:40
ну хз

)

возможно мы по-разному тестируем

Nikita
02.09.2016
17:05:21
обычный флоу с редаксом

ты пишешь экшн

пишешь редьюсер

пишешь тесты

Vladimir
02.09.2016
17:05:33
ща, редакс покажу

Nikita
02.09.2016
17:05:40
вероятность ошибиться в типах - ну прям мизер

в логике - запросто

Aleh
02.09.2016
17:05:56
мне тип стейта радуте в connect

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