@typescript_ru

Страница 195 из 669
Дмитрий
29.03.2017
18:57:27
м?
Сначала функции-генераторы, а потом вжух — и понеслась, и у тебя уже .babelrc.js с кучей разных штук, без которых не очень понятно, как раньше жил ?

Andrey
29.03.2017
18:58:44
А потом: “Какой же плагин для babel мне установить, чтобы заработал мой код?”

Дмитрий
29.03.2017
18:58:50
Эээ

Google
Дмитрий
29.03.2017
18:59:09
Не очень себе представляю такую ситуацию, конфиг что ли потеряли?)

Aleh
29.03.2017
18:59:23
и package.json

Дмитрий
29.03.2017
18:59:40
Да?

Aleh
29.03.2017
18:59:56
типичная ситуация в мире с системами контроля версий)

но вообще если кому-то гист делаешь

Дмитрий
29.03.2017
19:03:31
Очень тонкая ?

Хотя вот сейчас посмотрел на babelrc — в основном те плагины, про которые я говорил — всё же react-specific, и, возможно, остальным и правда не нужно)

Artur
29.03.2017
19:08:45
имхо, люди вон пишут без типов на жс столько лет и ничего, работает я думаю можно иногда any поставить, ничего страшного в этом нет тс нужен, но в меру, и если он в каких-то местах мешает пилить фичи для бизнеса, отнимает кучу времени в плане дрочки на типы и тд, то мб стоит просто поставить any где-то там и идти дальше, все хорошо в меру когда пилишь пакет/либу/фреймворк и потребители по сути это другие разработчики, тогда мб стоит пое***ся с типами, но когда пилишь какой-то визуальный инструмент для других людей, то им пофиг по сути что там внутри, а для себя всегда можно найти какие-то компромисы в плане типизации (где надо писать, а где нет) т.е. я вообще это не к тому, что надо ложить на все хер, я больше про то, что дофига перфекционизма это тоже плохо, особенно когда пилишь сугубо простые и прикладные вещи в clojurescript свое говно, в purescript – свое, везде свое говно, надо трахаться сорри, я все не читал, я вот не очень понимаю смысл в babel + ts? почему просто тс не оставить? вот эти плагины типа https://github.com/css-modules/css-modules-require-hook они ведь не очень нужны с вебпаком, все равно собираться придется и все равно даже если тупо для сср, то оч вероятно, что тулчейн нужен будет по-мощнее, чем просто бабель, почему бы сразу вебпаком все не делать (бтв для типизации цсс модулей есть tcm и плагин для вебпака)
Соглашусь, иногда стоит написать any. Например, когда пишешь какую-то ядрёную штуку, которая внутри всякие defineProperty использует или high order functions, cyrrying и так далее, которые плохо типизируются typescript, то внутри имплементации такой функции можно воткнуть any. Главное, чтобы публичный интерфейс функции был строгим.

Ну и вообще, перфекционизм надо подавлять, везде. В том числе и в дроче на использование только одной тульзы :)

Дмитрий
29.03.2017
19:12:40
покажи что ли
react-css-modules syntax-dynamic-import babel-plugin-lodash transform-react-stateless-component-name transform-react-constant-elements

Google
Дмитрий
29.03.2017
19:17:24
спорно на самом деле :)
То, что было спорно — я показывать не стал, а то закидаете? А почему тут спорно?)

Aleh
29.03.2017
19:32:00
constant elements норм

прям реально бустит перфоманс?

Petr
29.03.2017
19:38:54
Я однажды отказался от babel, оставил чистый ts

Kirill
29.03.2017
19:39:02
Приветствую. Иногда требуется сделать асинхронные неблокирующие сайд-эффекты, не оборачивая при этом весь исполняемый контекст в async функцию. Придумал вот такой сахар. Как думаете, нужен такой?



Petr
29.03.2017
19:39:40
Но потом я пошёл дальше и в одном проекте отказался от webpack, собираю бандл целиком на tsc

Оч быстро стартует и всё собирает, watch есть инкрементальный, но нет hot reload

Artur
29.03.2017
19:56:53
На входе es6 modules?

hot reload не использую, ибо не хочется постоянно себя одёргивать типа "а это я сломал, или хот-релоад глючит"?

кмк это должно быть продолжением do expressions: do async { await 1; }

Kirill
29.03.2017
19:59:38
hot reload не использую, ибо не хочется постоянно себя одёргивать типа "а это я сломал, или хот-релоад глючит"?
Нужно кодить как в системном программировании - час код пишешь, а потом только запускаешь.)

Дмитрий
29.03.2017
19:59:48
Когда хот релоад настроен — он не глючит, от слова вообще

Даже на async компонентах

Artur
29.03.2017
20:01:07
Когда хот релоад настроен — он не глючит, от слова вообще
Да и хрен с ним, для меня его профиты не стоят того, чтобы тратить время на его настройку

Нужно кодить как в системном программировании - час код пишешь, а потом только запускаешь.)
Кстати с ТС так и получается обычно, вывод компилятора сильно помогает

andretshurotshka?❄️кде
29.03.2017
20:02:02
лол

Дмитрий
29.03.2017
20:02:04
прям реально бустит перфоманс?
Я сам не замерял, но тут прям внушительная цифра https://reactjsnews.com/how-to-make-your-react-apps-10x-faster (забыл упомянуть ещё парный плагин transform-react-inline-elements)

Google
Дмитрий
29.03.2017
20:03:51
Да и хрен с ним, для меня его профиты не стоят того, чтобы тратить время на его настройку
Перезагрузка страницы уу тебя всего за месяц отнимет значительно больше

Aleh
29.03.2017
20:04:27
хот-релоад юзаю только в сторибуке)

Kirill
29.03.2017
20:04:38
у вас часто бывает код вне функций\методов?
Просто иногда не хочется делать всю функцию async, а только блок, выполняющий сайд эффект.

Aleh
29.03.2017
20:05:13
a().then(b).then(c)

Дмитрий
29.03.2017
20:05:14
Правда, здесь не очень immediate конечно

andretshurotshka?❄️кде
29.03.2017
20:07:22
Это setImmediate
setImmediate(async () => {}) так что ли?

Kirill
29.03.2017
20:13:37
a().then(b).then(c)
А как с помощью then сделать именно как я показал? Что-то не допераю...

Aleh
29.03.2017
20:14:26
foo(1).then(() => foo(2)).then(() => foo(3))?

Дмитрий
29.03.2017
20:16:25
setImmediate(async () => {}) так что ли?
Да, практически. Только так как всё равно это надо полифиллить, то проще через резолв

Kirill
29.03.2017
20:17:35
Не, пауза не нужна вообще. Я сказал, что делаю именно неблокирующий блок. Просто сахар предложил.

Дмитрий
29.03.2017
20:19:09
Но я там вижу именно паузу)

Kirill
29.03.2017
20:19:25
Где именно?

Google
Kirill
29.03.2017
20:20:46
foo(1).then(() => foo(2)).then(() => foo(3))?
Да, так работает. Вот думаю над then. Чем он лучше? Реджекты только легче отлавливать?

Aleh
29.03.2017
20:20:56
да ничем

он работает

а твой нет

вроде чето такое как ты предлагаешь было в issue typescript, но естественно не приняли, потому что нет в спеке es

Kirill
29.03.2017
20:21:42
а твой нет
Что не работает в моём коде?

Aleh
29.03.2017
20:21:57
ну твоего сахара нигде нет, я про это)

Kirill
29.03.2017
20:22:03
а)

Admin
ERROR: S client not available

Дмитрий
29.03.2017
20:24:01
Мне в одном месте часто нужен был immediate, в итоге пришёл к такому export const immediate = <T>(fn: (...args) => T, ...args) => Promise .resolve() .then(() => fn(...args))

andretshurotshka?❄️кде
29.03.2017
20:25:01
макросы)

Для сахара такого)

Дмитрий
29.03.2017
20:25:46
Мне в одном месте часто нужен был immediate, в итоге пришёл к такому export const immediate = <T>(fn: (...args) => T, ...args) => Promise .resolve() .then(() => fn(...args))
Бонусом идёт то, что при желании можно прямо к вызову immediate дописать then или await и получить возвращаемое значение

Kirill
29.03.2017
20:26:01
макросы)
Их уже пилят для ТС?

andretshurotshka?❄️кде
29.03.2017
20:26:04
Нет)

Дмитрий
29.03.2017
20:26:11
sweet js

Если typescript — не отдельный язык, то должно завестись

Как и dynamic import()

Aleh
29.03.2017
20:27:36
))

Дмитрий
29.03.2017
20:33:14
Кстати, я вспомнил, что мне это напоминает

Google
Дмитрий
29.03.2017
20:33:29
Экспериментальная do нотация, только ещё и с await

Я хотел набросать пример в repl бабеля, но, кажется, на данный момент такой финт ломает бабель ?

https://babeljs.io/repl/#?babili=false&evaluate=true&lineWrap=false&presets=stage-0%2Cstage-1%2Cstage-2%2Cstage-3&targets=&browsers=&builtIns=false&experimental=false&loose=false&spec=true&code=const%20pause%20%3D%20()%20%3D%3E%20new%20Promise(rs%20%3D%3E%20setTimeout(rs%2C%203e3))%0A%0Aconst%20func%20%3D%20async%20()%20%3D%3E%20%7B%0A%20%20%0A%20%20const%20val%20%3D%20do%20%7B%0A%20%20%20%20let%20c%20%3D%200%0A%20%20%20%20await%20pause()%0A%20%20%20%20c%2B%2B%0A%20%20%7D%0A%0A%7D&playground=true

const func = async () => { const val = do { let c = 0 await pause() c++ } }

Alexey
30.03.2017
09:14:11
всем привет, есть такая известная проблема когда при разработке библиотеки с peer dependencies (например lodash) подключая библиотеку через npm link в другой проект получаем в итоге дерево: my-project/ node_modules/ my-lib/ ( simlink! -> ~/mypath/my-lib/) node_modules/ lodash lodash

и при этом компилятор TS начинает ругаться собирая проект на Argument of type 'Lodash' is not assignable to parameter of type 'Lodash'

т.к берет их из разных папок и считает что это разные типы

кто-нибудь знает дешевое решение этой проблемы?

в ноде есть флаг https://github.com/nodejs/node/pull/6537

который вроде должен решать эту проблему

но в ts его не прокинуть

пытылся через NODE_PRESERVE_SYMLINKS=1 но не сработало

кажется compilerOptions.paths помогает

Aleh
30.03.2017
09:37:03
ругается просто или на какой-то строке?

Alexey
30.03.2017
09:38:22
во всех местах где ты например пытаешься с my-lib работать которая ожидает тип из peer dependencies

ты ей в функцию передаешь Lodash например

Aleh
30.03.2017
09:38:39
ммм

а зачем ты lodash передаешь о.о

Alexey
30.03.2017
09:38:47
а она ждет Lodash из своей локально node_modules/lodash

да это же пример

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