
Дмитрий
19.01.2017
20:31:27
Самому написать
Или забить

Сергей
19.01.2017
20:32:28
я написал, куда положить чтобы компилер кодхватил?

Aleh
19.01.2017
20:41:04

Google

Nikita
19.01.2017
20:42:04
@gusnkt, а какие у тебя аргументы за flow?
не могу сказать что-то конкретное) я попробовал TS, попробовал flow. flow зашел лучше.
в этом чатике не раз сравнивали flow/ts, у каждого свои плюсы/минусы. Но flow, имхо, умнее, лучше вычисляет и понимает типы.
автокомплит и прочие плюшки - мне лично не нужны, привык, что в js их нет. думаю что в среднем все равно, что ты выберешь, главное, чтобы команда одобрила

Сергей
19.01.2017
20:42:17
не могу сказать что-то конкретное) я попробовал TS, попробовал flow. flow зашел лучше.
в этом чатике не раз сравнивали flow/ts, у каждого свои плюсы/минусы. Но flow, имхо, умнее, лучше вычисляет и понимает типы.
автокомплит и прочие плюшки - мне лично не нужны, привык, что в js их нет. думаю что в среднем все равно, что ты выберешь, главное, чтобы команда одобрила
спасибо. Дельно сказано


Nikita
19.01.2017
20:42:36
не могу сказать что-то конкретное) я попробовал TS, попробовал flow. flow зашел лучше.
в этом чатике не раз сравнивали flow/ts, у каждого свои плюсы/минусы. Но flow, имхо, умнее, лучше вычисляет и понимает типы.
автокомплит и прочие плюшки - мне лично не нужны, привык, что в js их нет. думаю что в среднем все равно, что ты выберешь, главное, чтобы команда одобрила
попробовал TS - это пол года назад, до 2.0, даже. 2.0 тоже попробовал, но на этом все.
и от себя, как выше сказал - бери flow, это меньшее зло, на мой, субъективный взгляд)
https://www.typescriptlang.org/play/index.html#src=function%20test()%3A%20Promise%3Cstring%3E%20%7B%0D%0A%20%20%20%20return%20new%20Promise((resolve)%20%3D%3E%20resolve(1))%3B%0D%0A%7D%0D%0A%0D%0Atest().then((value%3A%20string)%20%3D%3E%20%7B%0D%0A%20%20%20%20console.log(value.split('%2C'))%3B%0D%0A%7D)%3B
а, ну вот мб тупняк с промисами тебе важен)
@mkusher так и не починили?


Aleh
19.01.2017
20:47:39
тут не с промисами, а коварианты/контрварианты

Nikita
19.01.2017
20:47:49
а, еще в TS прям дико бесил импорт реакта.
import * as React from 'react';
я понимаю, что дело в дефинишнах, но это какая-то фигня)

Aleh
19.01.2017
20:47:52
ну и с промисами в принципе тоже

Nikita
19.01.2017
20:48:30
> коварианты/контрварианты
это то что Promise<+A> в flow?

Aleh
19.01.2017
20:49:35
ну да, он не должен был пустить string как колбек в then

Google

Aleh
19.01.2017
20:49:52
но можно просто https://www.typescriptlang.org/play/index.html#src=async%20function%20test()%20%7B%0D%0A%20%20%20%20const%20a%20%3D%20await%20Promise.resolve(1)%3B%0D%0A%20%20%20%20return%20a%3B%0D%0A%7D%0D%0A%0D%0Atest().then((value%3A%20string)%20%3D%3E%20%7B%0D%0A%20%20%20%20console.log(value.split('%2C'))%3B%0D%0A%7D)%3B
и все будет хорошо

Vladimir
19.01.2017
20:50:25
new Promise то не работает

Nikita
19.01.2017
20:50:43
ага)) Promise.resolve - они осилили, да. но не new Promise
я помню @vkurchatkin говорил проблема глубоко в том, как TS работает, в отличии от flow

Vladimir
19.01.2017
20:52:19
не
понятия не имею почему это не работает
где то в репе есть объяснение
но - одно дело когда inference не работает
а тут совсем уж криминал

Nikita
19.01.2017
20:53:45
а TS тоже выводит конечный тип для каждой переменной и уже его сравнивает?

Vladimir
19.01.2017
20:55:34
корочн обяснение такое - он считает что это Promise<{}>
Что правильно, но не точно
А к Promise<string> это приводится уже из за бивариантности
new Promise((resolve) => resolve(1)).then(x => x.toFixed())
не работает
в общем фейл инференса вместе с бивариантностью может приводит к произвольным ошибкам

Nikita
19.01.2017
21:04:02
@sovamist а flow главное правильно настроить, и дальше все будет хорошо)

Aleh
19.01.2017
21:06:15
ну это конечно сказка)

Nikita
19.01.2017
21:12:45
ну, почти так и есть, кроме тех моментов, когда материшься)

Google

Vladimir
19.01.2017
22:02:44
Самая главная проблема флоу - это абсолютно нечитабельные ошибки иногда

Nikita
19.01.2017
22:14:13
ну и да и нет. с опытом становится все понятно)

Ҫѐҏӗѫӑ
20.01.2017
07:33:40
с опытом начинаешь расставлять флоуфиксми как боженька

Nikita
20.01.2017
09:41:20
и это тоже)

Anatoly
20.01.2017
12:03:30
Ребзя, привет.
Кто юзает tslint со своими конфигом?
Что делать с "no-unused-variable": true ?
Он кидает ворнинг
no-unused-variable is deprecated. Use the tsc compiler options --noUnusedParameters and --noUnusedLocals instead.
а как пофиксить - не понятно. Потому что ворнинг то для tsc

Паша
20.01.2017
12:08:06
мы юзаем
перешли на tsc-овский параметр
одна проблема: оставляешь неиспользованные переменные — не компилится

Anatoly
20.01.2017
12:08:40
А можешь показать?

Паша
20.01.2017
12:08:47
что? tsconfig?

Anatoly
20.01.2017
12:09:00
ну а где вы этот параметр добавляете?

Паша
20.01.2017
12:09:25
https://jsfiddle.net/60y0c7d9/

Anatoly
20.01.2017
12:10:39
понял, спасибо.

Паша
20.01.2017
12:10:47
не за что

Anatoly
20.01.2017
12:37:09
Перенес в tsconfig, линтер не ругается на неиспользуемые переменные...
Или теперь их проверка только на уровне компиляции? Т.е. tslint не смотрит tsconfig?
Видимо да.

Aleh
20.01.2017
14:10:26
https://github.com/Microsoft/TypeScript/issues/6802 на предпоследнем митинге мс решили, что нужно
https://github.com/Microsoft/TypeScript/issues/13331

Gordey
20.01.2017
14:19:47
чуваки, а если у меня есть immutable ordered map, как там менять местами элементы, где у них позиция хранится

Google

Gordey
20.01.2017
14:19:56
или по хешам как-то определяется

Aleh
20.01.2017
14:22:31
я не понял вопроса)

Gordey
20.01.2017
14:23:47
есть структура, типо Ordered Mao
т.е. объект упорядоченный
а, они в порядке set’a
все, ничего )

Aleh
20.01.2017
14:24:46
:)

Admin
ERROR: S client not available

Vladimir
20.01.2017
14:31:01
@chicoxyzzy чет штальц не але в тайпскрипте

Ҫѐҏӗѫӑ
20.01.2017
14:31:29
да не, он просто упоротый
а так код у него норм

Vladimir
20.01.2017
14:31:56
может, просто про тс чушь несет
но постоянно топит за него

Ҫѐҏӗѫӑ
20.01.2017
14:34:47
да его вообще не надо слушать. я с ним не выдержал более 5 минут общения на конфе в Братиславе.
ну если уж на то пошло, то во флоу тоже много неочевидного
а так да, это проблема в тс
есть такое

Vladimir
20.01.2017
14:35:20
да не, философские дискуссии это одно
он не в курсе фактов

Ҫѐҏӗѫӑ
20.01.2017
14:36:13
ты еще не видел как его ФП чуваки обосрали, когда он начал своими знаниями ФП вымахиваться)
но он все равно ничего не понял и считал, что прав

Google

Ҫѐҏӗѫӑ
20.01.2017
14:37:00
кого-то даже забанил из хаскель сообщества

Quet
20.01.2017
14:46:10
а про какую проблему в тс речь?

Aleh
20.01.2017
14:47:49
я так понимаю про этот тред https://twitter.com/andrestaltz/status/822452440121430016
но он там ваще не прав https://twitter.com/andrestaltz/status/822447456009023488

Vladimir
20.01.2017
15:16:33
так а я о чем

Anatoly
20.01.2017
15:34:32
Ребят, еще один нубский вопрос:
Если я указываю, например, "lib": ["es5", "dom"] и теперь, если я хочу заюзать console.log или какой-нибудь document я должен их подключить еще из соотв. библиотек через import ?

Vasiliy
20.01.2017
15:35:49
нет, они должны быть видны/доступны

Aleh
20.01.2017
15:38:07
по сути lib служит для указания того, что уже есть в среде

Anatoly
20.01.2017
15:39:09
ERROR in ./src/ts/customControls/Infographics/ParCoordsChart.ts
(251,42): error TS2304: Cannot find name 'HTMLElement'.
?

Vasiliy
20.01.2017
15:41:03
что-то не то(
ну interface HTMLElement extends Element { лежит в lib.dom.d.ts
https://i.gyazo.com/4f86ebe3b97d452e4531f6da3614c7dc.png

Anatoly
20.01.2017
15:41:58
Так у меня нет файла lib.dom.d.ts. Его отдельно надо ставить чтоли?

Vasiliy
20.01.2017
15:42:31
не, его и подключает "lib": ["es5", "dom"]
^--- вот это
что-то с конфигом или с чем-то еще, сложно сказать

Anatoly
20.01.2017
15:45:58
Когда я проваливаюсь в определение, например, HTMLElement он показывает файл .atom/packages/atom-typescript/node_modules/typescript/lib/lib.d.ts - т.е. из редактора, а не из самого ts

Aleh
20.01.2017
15:46:14
ну это проблемы редактора
просто у тебя видимо в атоме стоит свой бандл тайпскрипта
возможно там что-то очень старое

Anatoly
20.01.2017
15:47:31
хм, ладно, спасибо, буду дальше разбираться ?
Разобрался. Получается, чтобы юзать например, какой-нибудь Promise в es5 target, мне надо добавить в lib библиотеку с его тайпингами es2015.promise и добавить полифил отдельно, любыми способоами и будет счастье.