@typescript_ru

Страница 126 из 669
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
а на чем запускаешь тесты? phantomjs? karma?
Просто нода, для реакта jsdom еще

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
ах блин да

спасибо, я забыл про него

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
Babel plugin module alias
ох, а мб без бабеля как-то можно?

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

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