
Ҫѐҏӗѫӑ
08.12.2016
18:24:11
там если геттеры и сеттеры с декораторами, то бида
https://github.com/babel/babel/issues/2645

Google

Aleh
08.12.2016
18:24:54
спс

Ҫѐҏӗѫӑ
08.12.2016
18:25:30
https://github.com/babel/babylon/issues/237

Aleh
08.12.2016
18:26:50
function expression забавно)

Ҫѐҏӗѫӑ
08.12.2016
18:32:50
ахаха
https://docs.google.com/document/d/1ikxIP5-RVYq6d_f8lAvf3pKC00W78ueyp-xIZ6q67uU/edit#heading=h.968mz5bebisa
вася пупкин
норм пропозал
мама анархия

Nikita
08.12.2016
22:57:41
https://github.com/dialogs/dialog-web-components/commit/b56285c802c8c1e822ce35c15a3343c85181d72b#diff-ac400721eddd459895baacaa9d0e02b3L14
@vkurchatkin когда я говорю, что flow не ловит простейшие ошибки - вот пример
active не передавалось, передавалось value. flow по барабану

Vasiliy
08.12.2016
23:00:30
кстати, а как вы решаете эту проблему (у кого редакс на проекте) ?https://github.com/DefinitelyTyped/DefinitelyTyped/issues/8787
ну кроме
export default connect<
IFooConnectedState,
IFooConnectedActions,
IFooProps
>(
mapStateToProps,
mapDispatchToProps
)(Foo) as React.ComponentClass<IFooOwnProps>;

Google

Vasiliy
08.12.2016
23:01:54
(и заодно тоже интересно как называете эти интерфейсы, именно конвенции в проекте какие используете для их наименования)

Nikita
08.12.2016
23:04:33
export type Props = StateProps & DispatchProps
function mapStateToProps(state: AppState): StateProps
const mapDispatchToProps: DispatchProps
но, если честно, задрало такое решение) хочется просто писать код, а не выдумывать конструкции для flow, или ТС)

Vasiliy
08.12.2016
23:07:13
спасибо, я раньше на типы забивал просто (когда они оттягивали на себя много времени), сейчас просто хочу сделать классно
у меня вот в примере выше проблемы именно с connect, он возвращает не тот тип, который нужен потребителю

Nikita
08.12.2016
23:08:40
очень не хватает $ReturnType<mapStateToProps>
тогда можно было бы сделать проверку вида
declare var props: Props;
declare var connectResult: $ReturnType<mapStateToProps> & typeof mapDispatchToProps;
props = connectResult;

Alexander
08.12.2016
23:12:21
но не всегда его удастся использовать

Nikita
08.12.2016
23:12:40
м?


Alexander
08.12.2016
23:13:51
ну самый тупой пример
http://www.typescriptlang.org/play/#src=function%20useme()%20%7B%0D%0A%20%20%20%20return%205%0D%0A%7D%0D%0A%0D%0Aconst%20a%20%3D%20useme()%3B%0D%0Aconst%20b%3A%20typeof%20a%20%3D%20''#src=function%20useme()%20%7B%0D%0A%20%20%20%20return%205%0D%0A%7D%0D%0A%0D%0Aconst%20a%20%3D%20useme()%3B%0D%0Aconst%20b%3A%20typeof%20a%20%3D%20''#src=function%20useme()%20%7B%0D%0A%20%20%20%20return%205%0D%0A%7D%0D%0A%0D%0Aconst%20a%20%3D%20useme()%3B%0D%0Aconst%20b%3A%20typeof%20a%20%3D%20''#src=function%20useme()%20%7B%0D%0A%20%20%20%20return%205%0D%0A%7D%0D%0A%0D%0Aconst%20a%20%3D%20useme()%3B%0D%0Aconst%20b%3A%20typeof%20a%20%3D%20''#src=function%20useme()%20%7B%0D%0A%20%20%20%20return%205%0D%0A%7D%0D%0A%0D%0Aconst%20a%20%3D%20useme()%3B%0D%0Aconst%20b%3A%20typeof%20a%20%3D%203#src=function%20useme()%20%7B%0D%0A%20%20%20%20return%205%0D%0A%7D%0D%0A%0D%0Aconst%20a%20%3D%20useme()%3B%0D%0Aconst%20b%3A%20typeof%20a%20%3D%203#src=function%20useme()%20%7B%0D%0A%20%20%20%20return%205%0D%0A%7D%0D%0A%0D%0Aconst%20a%20%3D%20useme()%3B%0D%0Aconst%20b%3A%20typeof%20a%20%3D%203#src=function%20useme()%20%7B%0D%0A%20%20%20%20return%205%0D%0A%7D%0D%0A%0D%0Aconst%20a%20%3D%20useme()%3B%0D%0Aconst%20b%3A%20typeof%20a%20%3D%203#src=function%20useme()%20%7B%0D%0A%20%20%20%20return%205%0D%0A%7D%0D%0A%0D%0Aconst%20a%20%3D%20useme()%3B%0D%0Aconst%20b%3A%20typeof%20a%20%3D%203#src=function%20useme()%20%7B%0D%0A%20%20%20%20return%205%0D%0A%7D%0D%0A%0D%0Aconst%20a%20%3D%20useme()%3B%0D%0Aconst%20b%3A%20typeof%20a%20%3D%203#src=function%20useme()%20%7B%0D%0A%20%20%20%20return%205%0D%0A%7D%0D%0A%0D%0Aconst%20a%20%3D%20useme()%3B%0D%0Aconst%20b%3A%20typeof%20a%20%3D%20''#src=function%20useme()%20%7B%0D%0A%20%20%20%20return%205%0D%0A%7D%0D%0A%0D%0Aconst%20a%20%3D%20useme()%3B%0D%0Aconst%20b%3A%20typeof%20a%20%3D%20''


Nikita
08.12.2016
23:14:05
declare var props: Props;
declare var state: AppState;
props = { ...mapStateToProps(state), ...mapDispatchToProps };
типо такого может быть можно...
ну и все равно, connect возвращает новую функцию, с новым интерфейсом
надо именно это описывать, по хорошему

Vladimir
09.12.2016
06:39:09
Не знаю зачем
Можно деструктуризацию делать наверно сразу

Google

Vladimir
09.12.2016
06:39:55
И тогда все будет норм

Aleh
09.12.2016
08:16:58
Тогда можно будет нормально типизировать
https://github.com/Microsoft/types-publisher/pull/213
че за бред
я думал они просто peerDeps запилят и там можно будет указать ts >=2.1.1
и все были бы счастливы
вот тут продолжение https://github.com/Microsoft/types-publisher/issues/214

Dreamerinnoise
09.12.2016
11:11:29

Aleh
09.12.2016
11:13:07
в джвух словах плиз, что там такое
коротко о ситуации: вышел ts 2.1, куда завезли mapped types и обновили type literals(бул теперь можно). Теперь хочется в теже тайпинги реакта добавить в setState Partial и тому подобное. Но вопрос как держать версии пакетов тайпингов. Надо как-то указывать версию ts для конкретной версии тайпинга
если ты юзаешь ts 2.0, то надо как-то запретить ставить тебе тайпинги, которые юзают фичи из 2.1

Dreamerinnoise
09.12.2016
11:14:00
А если на @next сижу?

Aleh
09.12.2016
11:14:08
ну оно ж >2.1.1
там ж 2.2 сейчас
ну решение, которое сейчас там принято просто супер: ждем месяц, а потом юзаем 2.1
/ирония
решений там предлагают несколько, компайлтайм макрос(который опять же старые версии не умеют), добавить какой-то синтаксис в package.json
ну и плюс как закостылять на данный момент
кмк peerDeps решает проблему полностью или я чего-то не учитываю?

Dreamerinnoise
09.12.2016
11:25:33
как-то смысла в контектсе реакт тайпингов не догоняю, учитывая, что там сейчас на 0.14 версию они

Google

Dreamerinnoise
09.12.2016
11:25:41
Ну да ладно

Aleh
09.12.2016
11:30:42
ведь они мержатся

Dreamerinnoise
09.12.2016
12:44:49
https://github.com/s-panferov/awesome-typescript-loader/issues/293
Захотел я потрогать авсом
а воз и ныне там

Admin
ERROR: S client not available

Dreamerinnoise
09.12.2016
12:50:34
@mkusher у тебя обычный ts-loader?

Aleh
09.12.2016
12:50:41
Да

Roman
09.12.2016
14:04:09
а во флоу как-то указывается, что функция может вернуть значение, а может бросить эксепшен?

Aleh
09.12.2016
14:05:47
нет

Vladimir
09.12.2016
14:20:20
Это было бы бесполезно во многом

Ҫѐҏӗѫӑ
09.12.2016
14:22:23
вообще в бабеле тоже такая проблемка есть
точнее может настать

Aleh
09.12.2016
14:22:54
ты про стейжи?

Ҫѐҏӗѫӑ
09.12.2016
14:23:03
про новые пропозалы да
в отдельной репе
читал ту ишью штоль?

Aleh
09.12.2016
14:23:24
ну не всю

Google

Aleh
09.12.2016
14:23:30
всю лень

Ҫѐҏӗѫӑ
09.12.2016
14:23:55
да там мало https://github.com/babel/babel/issues/4955

Aleh
09.12.2016
14:24:17
так если @types/PACKAGE_NAME будут указывать в package.json peerDependency ts нужной версии
разве это не спасет всех?
https://github.com/Microsoft/types-publisher/issues/214#issuecomment-265984138
https://github.com/palantir/tslint/blob/d7960b829f6b3f817185b1dac59523994dcb2cb6/package.json#L70
мда
проблема в постфиксе "dev"? Npm не умеет резолвить их или как?

Dreamerinnoise
09.12.2016
15:25:20
Это один из авторов флоу?

Vladimir
09.12.2016
15:26:03
Бабеля

Дмитрий
09.12.2016
15:29:09
Это который написал ещё dear javascript?

Vladimir
09.12.2016
15:29:16
Ага

Дмитрий
09.12.2016
15:29:19
Ему бы флуоксетину попить

Vladimir
09.12.2016
15:29:26
Какая то драма, но как всегда хуй поймешь какая
@chicoxyzzy не в курсе?

Ҫѐҏӗѫӑ
09.12.2016
15:42:52
неа
но у него уже давно черный квадрат на аватарке и все организации в прайват спрятаны