
Дмитрий
18.07.2017
13:42:55
Если из Foo extends Bar не следует структурное соответствие Bar

Artur
18.07.2017
13:43:04
Ну там где-то мелькало, что No need for any type assertions

andretshurotshka?❄️кде
18.07.2017
13:43:10
Это баг
Вы че

Google

andretshurotshka?❄️кде
18.07.2017
13:43:56
Давайте начнём с того, что всё сломалось нахрен:
https://github.com/Microsoft/TypeScript/issues/16985

Дмитрий
18.07.2017
13:44:16
Весело

andretshurotshka?❄️кде
18.07.2017
13:47:02
Какая версия тс?

Artur
18.07.2017
13:53:23
Спасибо, ребят
Иногда стоит меньше сомневаться в том, что ты не дурак
https://github.com/Microsoft/TypeScript/issues/16985#issuecomment-316107775
И вроде как действительно оно не бага
Просто костыльное использование

Vladimir
18.07.2017
16:21:10
Если бы это работало, то это было бы небезопасно
Так что с точки зрения ТС - наверно бага

Artur
18.07.2017
16:22:32
Ну вот ребята утверждают, что это правильное проведение.

Vladimir
18.07.2017
16:25:21
Ну так я согласен

Google

Vladimir
18.07.2017
16:25:31
Но это не значит, что это не баг

Aleh
18.07.2017
16:34:41

Artur
18.07.2017
16:35:15

Vladimir
18.07.2017
16:37:13
Вполне ошибка нормальная, на мой взгляд
Даже не знаю, что еще можно добавить

Aleh
18.07.2017
16:38:04

Artur
18.07.2017
16:39:04

Vladimir
18.07.2017
16:39:23
Да, тоже самое

Artur
18.07.2017
16:39:29
Нет же
Знаете в чем разница?

Aleh
18.07.2017
16:40:19
Пока нет

Artur
18.07.2017
16:40:46
Разница в том, что на этапе объявления класса мы не знаем, какой тип будет однозначно передан в качестве дженерика, а при передаче литерала в качестве аргумента при создании экземпляра класса мы укажем его явно.
Вот в первом случае, если сделать так:
new A<{x: object}>() явная же ошибка
однако при передаче в качестве аргумента мы знаем точно, что передаем и застрахованы от ошибки
new A<{x: object}>({x: smth})

Max
18.07.2017
16:42:54
[ts] Spread types may only be created from object types.
(property) initialData: TData extends object
блин
почему не работает extends object?

Vladimir
18.07.2017
16:43:20
Содержимое класса проверяется отдельно для абстрактного T
Так что T мы не знаем никогда

Max
18.07.2017
16:43:46
и как это фиксить?

Сергей
18.07.2017
16:44:03

Google

Artur
18.07.2017
16:44:40

Max
18.07.2017
16:44:57

Artur
18.07.2017
16:45:02
Ну, скажем так, в рамках JS и TS не совсем корректно

Max
18.07.2017
16:45:23
ну я же предполагаю что это extends object

Artur
18.07.2017
16:45:40

Max
18.07.2017
16:46:14
в том что генерики со спредами не работаю
и как фиксить
https://github.com/Microsoft/TypeScript/issues/15792
хм
вроде в 2.3.3 обещали починить
хуй

Aleh
18.07.2017
16:47:45

Aleh
18.07.2017
16:48:32
Я на 2.2 и там точно еще не фиксанули

Max
18.07.2017
17:03:11
поставил 2.4 - same

andretshurotshka?❄️кде
18.07.2017
17:04:29
Я из-за этого юзаю object.assign

Max
18.07.2017
17:07:06
https://github.com/Microsoft/TypeScript/pull/13288
Короче эти пидоры вот этот PR мержат уже херпойми сколько
с января
Object.assign({}, oldProps)?

Google

andretshurotshka?❄️кде
18.07.2017
17:09:52

Max
18.07.2017
17:10:00
щас попробую, спасбио
а оно тип выводит?

andretshurotshka?❄️кде
18.07.2017
17:10:15
Должен

Max
18.07.2017
17:10:20
или то же самое будет что {…spread as any} :)

andretshurotshka?❄️кде
18.07.2017
17:10:23
Там intersection же

Max
18.07.2017
17:10:52
mkay

Aleh
18.07.2017
17:12:24
Ну это проблема отсутствия rest типов

Admin
ERROR: S client not available

Max
18.07.2017
17:13:37
ну вон ПР выше
я подписался
с ассигн пашет
спасибо
НУЖНО БОЛЬШЕ ГЕНЕРИКОВ БОГУ ГЕНЕРИКОВ

Сергей
18.07.2017
17:17:54
Пздц

Max
18.07.2017
17:18:05
да, с хоками вывод типов ебануться

Дмитрий
18.07.2017
17:19:23
?

Google

Max
18.07.2017
17:19:33
ыыыыыыыыы

Дмитрий
18.07.2017
17:19:39
Психанул

Max
18.07.2017
17:19:40
охуительно

andretshurotshka?❄️кде
18.07.2017
17:19:52
Ето xml?

Дмитрий
18.07.2017
17:19:59
?
Тип никак не хотел выводиться ?

Max
18.07.2017
17:20:15
ахахаха

Aleh
18.07.2017
17:24:16
Фейсбучеры долго смотрели на генерики и придумали jsx

andretshurotshka?❄️кде
18.07.2017
17:24:48
они из es4 украли)

Дмитрий
18.07.2017
17:25:00
С параметрами! Джва года ждал

Aleh
18.07.2017
17:25:32
И параметры и спреды
И hkt
Уже есть компонент монады?)

Дмитрий
18.07.2017
17:26:27
В jsx? ?? Щас будет ?
Уже есть компонент монады?)
Я кстати нашёл случайно в коде реакта, как они используют opaque types)) Всё банально оказалось ? Тупо переназначение, видимо чтобы импорты менять только в одном месте
Точнее, не сами opaque types, у них просто типы там с приставкой Opaque

Aleh
18.07.2017
17:28:46
Opaque$Type ?

Дмитрий
18.07.2017
17:33:16
https://github.com/facebook/react/blob/8d61138186e79e1e719786c8c76186e64b603bd5/src/renderers/shared/fiber/ReactFiberReconciler.js#L48
Ну и в целом концепция opaque{чего то там} встречается регулярно ?

andretshurotshka?❄️кде
18.07.2017
17:34:28
Так это не то

Aleh
18.07.2017
17:34:28