
Vladimir
12.10.2016
17:19:18
Обчные API в JS либах бессмысленно неудобные

Nikita
12.10.2016
17:20:08
это правильно
вот прям не согласен) lodash, bluebird отточены уже давным давно, смысл брать их TS/Flow аналоги, если тайпинги есть?

Vladimir
12.10.2016
17:20:31
ну, есть исключения

Vlad
12.10.2016
17:20:51

Google

Vladimir
12.10.2016
17:21:00
Очень часто делается куча вариантов аргументов просто ради красоты

Nikita
12.10.2016
17:21:21
function foo(): Promise<string> {
return new Promise((resolve: (value: string) => void) => {
value(123)
});
}
убого, но ты связался с типами в JS и с TS. Страдай)

Vladimir
12.10.2016
17:23:29
нет
особо вроде не надо

Nikita
12.10.2016
17:24:23
ок, а если бы юзал, свои тайпинги по мере необходимости - норм вариант?)

Vladimir
12.10.2016
17:24:59
ну да
свои тайпинг, в которых только то, что нужно, так как нужно
одним способом

Vlad
12.10.2016
17:36:35

Google

Vlad
12.10.2016
17:42:39
в то же время flow хорошо обрабатывает эту ситуацию
кстати, всё еще надо делать? import * as React from 'react';

Fedor
12.10.2016
17:48:21
вроде как --allowSyntheticDefaultImports решает
https://www.typescriptlang.org/docs/handbook/compiler-options.html
надо проверить)

Vlad
12.10.2016
18:35:41

Fedor
12.10.2016
18:40:16
Короче вебпак не прав))

Vlad
12.10.2016
18:41:15
добро пожаловать в ченжлоги тогда
а можно носом тыкнуть в эти самые чейнджлоги? потому что в тех, что в репозитории (https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript) об этом ничего не нашел, в ишьюсах до сих пор спрашивают об этой проблеме, а о задаче такой нашёл только это https://github.com/Microsoft/TypeScript/issues/9562
по идее, можно поставить target в es6 и "дотранспливать" бабелем.

Ҫѐҏӗѫӑ
12.10.2016
18:56:40
это проблема тайпингов реакта, выше говорили же
с импортами все норм

Vlad
12.10.2016
19:06:18
с импортами все норм
проблема тайпингов реакта как раз и решается опцией "--allowSyntheticDefaultImports"

Aleh
12.10.2016
19:07:46
ну да, скорее проблема es2015 import и commonjs

Vlad
12.10.2016
19:09:29
вот только бабель вкрутил интероп (по сути костыль), понимая проблемы пользователей, а тс – нет

Aleh
12.10.2016
19:12:04
ну, бабель выдумали костыль и если бы параллельно тс выдумали бы костыль, то получилось бы два конкурирующих подхода

Vlad
12.10.2016
19:12:14
и в ущерб этому правильному поведению, нормально в 2016 мы можем использовать ТС лишь как плагин к бабелю

Aleh
12.10.2016
19:12:16
да и сам бабель свой интероп ж ломал

Google

Vlad
12.10.2016
19:13:57

Aleh
12.10.2016
19:14:14
ну да, просто не обновлялись)

Vlad
12.10.2016
19:14:27
:)

Aleh
12.10.2016
19:14:57
так а зачем вообще * as A вам в реальных задачах?

Vlad
12.10.2016
19:16:09

Aleh
12.10.2016
19:16:20
ну да
import { Component } from "react";

Vlad
12.10.2016
19:18:47
вообще вариант, лишь бы не import * as React from 'react';

Nikita
12.10.2016
19:19:45
а в чем проблема TS использовать тот же костыль что и babel?)

Vlad
12.10.2016
19:20:22

Aleh
12.10.2016
19:20:28

Aleh
12.10.2016
19:20:42
ну или еще как угодно подсовывать в *sx

Vlad
12.10.2016
19:21:20

Aleh
12.10.2016
19:21:57
мы экспоузим и не паримся
несколько версий реакта на одной странице не встречается

Vlad
12.10.2016
19:24:39

Aleh
12.10.2016
19:25:10
{ test: require.resolve("react"), loader: "expose?React" },

Vlad
12.10.2016
19:28:41

Aleh
12.10.2016
19:29:06
declare const React где-нибудь в ваших файлах деклараций

Google

Vlad
12.10.2016
19:31:23
крутое решение

Admin
ERROR: S client not available

Vlad
12.10.2016
19:32:17
проблемы созданной технологией, призванной решать проблемы других технологий

Aleh
12.10.2016
19:32:49
у бабеля собстно проблема с * as blabla

Nikita
12.10.2016
19:36:54

Aleh
12.10.2016
19:37:11
module.exports = function() {}

Vlad
12.10.2016
19:37:18

Nikita
12.10.2016
19:38:17

Aleh
12.10.2016
19:38:57
ну, если заимпортить ее через import * as f from ""; то она потеряется и сделать f() нельзя будет

Nikita
12.10.2016
19:39:23
ага, тк это дефолтный экспорт в commonjs

Aleh
12.10.2016
19:39:37
нет конечно

Nikita
12.10.2016
19:39:55
export default function() {}
тоже не получишь функцию при import * as f

Aleh
12.10.2016
19:41:14
ну только это не дефолтный экспорт в commonjs

Nikita
12.10.2016
19:41:31
он и есть
exports.foo = function() {} - именованный

Aleh
12.10.2016
19:41:49
в es2015 export default это экспорт чего-то под именем дефолт

Nikita
12.10.2016
19:42:49
нет. это дефолтный экспорт, ты же default не получаешь при import * as foo?)

Google

Nikita
12.10.2016
19:44:19
сделали бы флаг babelCompat и упростили всем жизнь. но нет)

Aleh
12.10.2016
19:44:42

Nikita
12.10.2016
19:45:07
потому что у модуля есть дефолтный экспорт и есть именованные
имя не может быть default
также как switch-case. есть все случаи, а есть дефолтный случай

Aleh
12.10.2016
19:47:50
но имя у него все равно есть, оно дефолт
ну да, но имя у него все равно вполне конкретное

Vlad
12.10.2016
19:56:17
в данном случае, речь идет о синтаксисе import DEFAULT, { NAMED} from 'MODULE'
а не о том, что они отдельно "хранятся"
вот тут описано, почему дефолта нет в экспортируемых именах
If SameValue(n, "default") is false, then