
Roman
03.12.2016
20:31:31
никто tcomb не пробовал?

andretshurotshka?❄️кде
03.12.2016
20:34:32
я пробовал

Roman
03.12.2016
20:34:59
как ощущения, полезен оказался?

andretshurotshka?❄️кде
03.12.2016
20:36:55
Ну можно без него наверно, он у меня просто висит на эндпойнтах как рантайм проверка

Google

Roman
03.12.2016
20:38:13
а он у тебя вместе со статичным тайпчекером используется или сам по себе?
просто есть желание делать валидацию через типы, но тс и флоу тянут бинарники

andretshurotshka?❄️кде
03.12.2016
20:39:36
вместе

Roman
03.12.2016
20:41:00
то есть получилось типы переиспользовать?

Vasiliy
04.12.2016
01:17:47
а кто пользуется vscode, какие плагины у вас стоят для ts?
что-то из этого полезно https://i.gyazo.com/b08664851746a5d14d7af2bc29612d6d.gif ?

Dreamerinnoise
04.12.2016
05:51:55
Гит лог
Едиторконфиг
Тслинт

Vasiliy
04.12.2016
14:28:44
а тут кто-нибудь пишет тесты?) на ts

Yuri
04.12.2016
14:30:03
а как тестировать ts на js я что-то хз )

Vasiliy
04.12.2016
14:33:17
а что используешь для тестов?
jsdom, jsdom-global? tape, ava? у тебя реакт? enzyme, tape-enzyme? мне вот это все интересно и это не паранояльный синдром (я надеюсь)

Aleh
04.12.2016
15:51:54
Mocha

Google

Aleh
04.12.2016
15:51:59
А в чем вопрос?
Ну ещё бизнес сценарии на cucumber, но это не совсем тесты

Vasiliy
04.12.2016
15:53:38
а на чем запускаешь тесты? phantomjs? karma?

Nikita
04.12.2016
15:54:01
jest!

Vasiliy
04.12.2016
15:54:44
т.е. у тебя в jest на jsdom / node (testEnvironment), ок
ну jest прикольный тоже, забыл упомянуть его
да вопроса собственно нет) просто интересуюсь кто что использует и почему
потому как сейчас на новом проекте сам думаю что использовать

Aleh
04.12.2016
16:16:09

Vasiliy
04.12.2016
16:16:42
ts-node?
т.е. у тебя, наверное, написано в скриптах что-то вроде ts-node node_modules/.bin/tape-watch -r jsdom-global/register 'test/**/*.test.tsx' | tap-dot ?
а как ты решаешь эту проблему? import Foo from '../../src/scripts/components/Foo';

Aleh
04.12.2016
16:20:38
ts-node?
У нас два режима есть: для дева, там require hooks и для полного запуска вначале компилятся все тесты и че им надо , а потом запускается

Vasiliy
04.12.2016
16:22:26
ах блин да
спасибо, я забыл про него

Aleh
04.12.2016
16:23:44

Vasiliy
04.12.2016
16:24:06
а аву не любишь?

Aleh
04.12.2016
16:24:25
Я люблю describe-context-it :)

Vasiliy
04.12.2016
16:24:38
как в rspec чтоли?)

Aleh
04.12.2016
16:24:43
Ага
Ну поэтому мока)

Vasiliy
04.12.2016
16:47:33

Google

Aleh
04.12.2016
16:47:47
вот тут хз
NODE_PATH

Vasiliy
04.12.2016
17:14:55
вроде же можно это настроить с baseUrl, rootDirs & paths,
но у меня пока не получилось, оставил пока с NODE_PATH :(

Aleh
04.12.2016
17:23:01
все эти опции не влияют на выход, в результат просто перенесется имя модуля как есть

Vasiliy
04.12.2016
17:36:49
блин, у меня jsdom поставил @types/node и теперь не работает @types/webpack-env :(
https://github.com/DefinitelyTyped/DefinitelyTyped/issues/8018#issuecomment-264717900

Aleh
04.12.2016
17:37:01
Оо
а я для jsdom не ставил тайпсы

Vasiliy
04.12.2016
17:37:34
хотя стоп
зачем они мне

Aleh
04.12.2016
17:37:53
во-во

Vasiliy
04.12.2016
17:38:11
все, нет проблемы)
нет, плохо, от @types/node зависит много других пакетов, кроме jsdom,
@types/tape тот же тянет его, а мне хочется чтобы были типы для tape

Aleh
04.12.2016
17:43:53
так а что не так с types/node
?

Vasiliy
04.12.2016
17:44:07
он ломает webpack-env

Aleh
04.12.2016
17:44:07
а, вижу линк

Vasiliy
04.12.2016
17:44:14
да

Aleh
04.12.2016
17:45:02
а, в webpack-env типа свой require
глобальный
ясно-понятно

Google

Vasiliy
04.12.2016
17:45:21
а у меня module.hot, не, ну мб я уже слишком многого хочу) но хочется ведь чтобы все классно было

Aleh
04.12.2016
17:45:40
ну именно по этой причине вот все такое должно быть в спеке)
а как ts подключает такие вот тайпинги, которые глобальную фигню ставят?
их в types указываешь

Vasiliy
04.12.2016
17:46:28
да, и это блин тоже странно, я указал один webpack-env в typings в tsconfig.config
и он видит другие тайпинги тоже, что противоречит тому, что в доке написано

Admin
ERROR: S client not available

Aleh
04.12.2016
17:46:36
сделай два tsconfig
один для node-env
другой для browser-env

Vasiliy
04.12.2016
17:49:11
я сейчас попробовал просто убрать все из typings в tsconfig.json и
сделал /// <reference types="webpack-env" /> у себя там в index.ts
не понимаю как это работает(
ERROR in /Users/vyorkin/projects/my-super-awesome-project/node_modules/@types/node/index.d.ts
(73,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'require' must be of type 'RequireFunction', but here has type 'NodeRequire'.
т.е. даже если на 2 разбить конфиги
я не понимаю как убрать @types/node из одного из них

Aleh
04.12.2016
17:51:11
вообще, хорошим тоном было бы сделать в обоих тайпингах type Require
и не парить людям головы
надо бы PR наверное отправить

Vasiliy
04.12.2016
17:52:09
я слишком тупой для этого, надо вникать (:
снес webpack-env,
if ((module as any).hot) {
(module as any).hot.accept('./App', () => {
...

Aleh
04.12.2016
17:52:37
ну для того, чтобы потом помержились декларации
еще как вариант
хотя не(

Google

Aleh
04.12.2016
17:54:39
не по теме, но https://github.com/DefinitelyTyped/DefinitelyTyped/issues/7003#issuecomment-264698490
сейчас же нет механизма для фиксирования версии ts в тайпингах?
вот sinon можно расширить с новыми mapped types

Vasiliy
04.12.2016
17:57:18
не слышал о таком (про фиксирование версии)

Aleh
04.12.2016
17:58:03
ну точнее в теории можно как я сделал, в package.json, но сама инфраструктура, CI будут на 2.0 запускаться

Roman
04.12.2016
19:37:43
а кто может объяснить как флоу здесь обрабатывает предикат https://github.com/gcanti/babel-plugin-tcomb#refinements
$Refinement тип вот тут же просто объект https://raw.githubusercontent.com/gcanti/pantarei/master/tcomb/3.x.x-0.33.x/tcomb.js

Vasiliy
04.12.2016
19:42:55
чет сложно)
// refinement hack
declare type Predicate = (x: any) => boolean;
declare type $Refinement<P: Predicate> = {};
type Integer = number & $Refinement<typeof isInteger>;

Roman
04.12.2016
19:44:16
да вот не понятно как type $Refinement запустит функцию проверки, если эт просто тип объект получается

Vasiliy
04.12.2016
19:44:59
я как бы понял
но объяснить пока не могу
number & $Refinement<typeof isInteger> т.е. это либо число либо проверь мне пожалуйста целое ли это число

Roman
04.12.2016
19:46:43
это да, непонятен просто сам механизм проверки

Vasiliy
04.12.2016
19:49:40
https://flowtype.org/try/#0CYUwxgNghgTiAEAXAngBwQBTsAlmKiCAvPABQAeAXPFAHbICU8RAfPAEYD2nEIdA3AChBoSLAQp08ACQAlEADMctEAFsQtRAB4M1LCFz5CbEgG8AvkMFhOtAM6J4OOwElNIAOYgYzeLWZs-gCk8ACMzEQkAAyCkghuhF4+JLQArqrs3vAAZDLySirqmlpxnApOru5JLFYKqbRgiDi28ArcpLTUCZ7eTKaC8PBwiKkw-rSC5sI29o7Jre0ArAxWM3Y8IAB0EJwepDAMQA