@typescript_ru

Страница 110 из 669
Vladimir
01.11.2016
11:42:09
да вроде нет

Можно через intersection сделать

Nikita
01.11.2016
11:43:00
Ну с обычными данными можно же работать иммутабельно, в чём проблема?
прям очень неудобно. у тебя ничего не может гарантировать иммутабельность, кроме контракта.

Vladimir
01.11.2016
11:43:01
Если get/set не нужны

Google
Nikita
01.11.2016
11:43:08
они мне внутри нужны

Vladimir
01.11.2016
11:43:33
Ну вместо них можно использовать обычные проперти

Nikita
01.11.2016
11:45:26
ну то есть выкинуть record)

Дмитрий
01.11.2016
11:45:55
прям очень неудобно. у тебя ничего не может гарантировать иммутабельность, кроме контракта.
Железых гарантий нет, но я рамдой пользуюсь, там все операции по умолчанию иммутабельны

Vladimir
01.11.2016
11:46:55
Когда $PropertyType допилят, все будет ок

Nikita
01.11.2016
11:47:07
а immutable/mori/etc. - тут действительно разницы нет

Дмитрий
01.11.2016
11:47:41
Так как там иммутабельный assoc

То есть я могу выстрелить себе в ногу, но прицеливаться нужно хорошо

Nikita
01.11.2016
11:48:45
гм, а Set в рамде где?

Дмитрий
01.11.2016
11:49:55
А, не, пардон

Туплю

Google
Nikita
01.11.2016
11:50:07
чет какая-то странная библиотека))

Дмитрий
01.11.2016
11:50:54
Не, это я не сразу догнал просто)

В рамде нет типов данных, вообще

Это иммутабельные операции, объекты же любые на твой вкус.

Nikita
01.11.2016
11:51:38
похоже на lodash, угу)

Дмитрий
01.11.2016
11:52:06
А ещё больше на lodash/fp, шок сенсация ?

Nikita
01.11.2016
11:52:50
в общем сами объекты тебе ничего не гарантируют, это не удобно

Дмитрий
01.11.2016
11:59:29
Ну операции гарантируют, этого достаточно, если не стрелять в ногу специально. Это просто ортогональный подход)

Nikita
01.11.2016
12:11:43
ну я не просто так привел в пример draft-js

у тебя draft-js отдельно написан, в приложение он встраивается отдельно. разработчики draft-js уверены, что юные адепты реакта не выстрелят себе в ногу, тк любое изменение с стейтом draft-js иммутабельно

особенно это важно, когда есть желание предыдущий и следующий стейт сравнивать

Ҫѐҏӗѫӑ
01.11.2016
12:25:00
> разработчики draft-js уверены, что юные адепты реакта ...работающие в фейсбуке

ты забыл вставить

Aleh
01.11.2016
14:48:10
я чет забыл, а почему tsc игнорит tsconfig, если ему файл передавать? Вопрос именно почему

ну просто это ж с какой-то целью делалось)

Nikita
01.11.2016
14:50:47
у флоу еще все хуже, кстати( надо прям очень хитро конфиг написать, чтобы все заработало, как тебе нужно))

Aleh
01.11.2016
14:52:52
ну, вот казалось бы, хочется посмотреть ошибки для одного и только одного файла, запустим tsc и укажем ему путь к файлу, а он нам скажет

но

Alex
01.11.2016
15:47:07
есть нубский вопрос, в чём прикол наследования интерфейсом класса, доку почитал, там есть пример даже, но как то сама идея костыль редкостный

Vasiliy
01.11.2016
15:57:16
я тоже этого не понимаю если что, было бы интересно узнать кто так делает и зачем, может быть я тоже начну

Google
Nikita
01.11.2016
16:16:28
вы про что? дайте ссылку на доку

Vasiliy
01.11.2016
16:19:03
https://www.typescriptlang.org/docs/handbook/interfaces.html Interfaces Extending Classes

Nikita
01.11.2016
16:21:16
мм, может для тех случаев, когда интерфейс не объявлен

например у Array, то есть у стандартных объектов

Vasiliy
01.11.2016
16:22:33
ну как вариант, да (т.е. у объектов, которые не контролируешь)

Alex
01.11.2016
17:02:40
Как то костыльно, можно было бы сделать стандартный интерфейс массива и от этого плясать

Dreamerinnoise
01.11.2016
17:04:15
Он есть

Aleh
01.11.2016
17:51:34
tsc -w только содержимое файлов кешит?

Ҫѐҏӗѫӑ
02.11.2016
09:57:18
бабилон не умеет + из flow?

рили?

короче обоим парсерам еще придется говна наесться

а юзерам флоу и подавно

Nikita
02.11.2016
10:20:05
там + вообще странно работает)

Vladimir
02.11.2016
10:23:27
https://github.com/babel/babylon/pull/161

если об этом

Ҫѐҏӗѫӑ
02.11.2016
10:24:31
об этом

Vladimir
02.11.2016
10:25:03
Это яно смерджили задолго до релиза flow

MVP
02.11.2016
11:10:19
не совсем пойму как быть с простыми конфигами в JSON

например есть let displayConfig = { "from": 0, "to": 100, "color": "#fc0", "displayType": "all" }; someThing.setDisplay(displayConfig);

какой надо тип аргумента ставить у setDisplay ? если пока точно не ясно какие там будут параметры ?

Google
Aleh
02.11.2016
11:11:56
ну, зависит от того, что ты там ожидаешь ))

MVP
02.11.2016
11:12:03
обязательно заводить интерйес под это дело ?

да я же говорю сейчас там 4 параметра потом может будет 24

<JSON>displayConfig - тоже ругается

Aleh
02.11.2016
11:12:56
ну, ты либо типизируешь их

Admin
ERROR: S client not available

Aleh
02.11.2016
11:13:09
явно описываешь какого типа каждый из параметров

и хоть миллион их там

MVP
02.11.2016
11:13:17
ну да либо any

Aleh
02.11.2016
11:13:21
ну либо any, да

https://github.com/amilajack/eslint-plugin-flowtype-errors а насколько шустро он работает на реальных проектах? Надо ж по всем импортам пробежаться

MVP
02.11.2016
11:14:26
ясною ну я думал есть возможность сказать - типо там будут поля JSON но разные

Dreamerinnoise
02.11.2016
11:14:28
http://stackoverflow.com/questions/13320568/can-i-create-a-typescript-type-and-use-that-when-ajax-returns-json-data/13320802#13320802 шото типо такого?

MVP
02.11.2016
11:15:33
http://stackoverflow.com/questions/13320568/can-i-create-a-typescript-type-and-use-that-when-ajax-returns-json-data/13320802#13320802 шото типо такого?
ну это да путь интерйесов - хорошо когда уже все понятно с структурой более менее, у меня пока все в scaffolding

Aleh
02.11.2016
11:15:49
ну так оно меняется, ты и тип меняешь

мы кстати для такого юзаем типы, а не интерфейсы

Aleh
02.11.2016
11:16:51
оно ж ругать будет, что там поля всякие левые

Dreamerinnoise
02.11.2016
11:17:10
Разве?

Aleh
02.11.2016
11:17:14
можно указать {[key: string]: string|number}, но тоже говно

Google
Aleh
02.11.2016
11:17:33
https://www.typescriptlang.org/play/index.html#src=function%20f(a%3A%20Object)%20%7B%0D%0A%20%20return%20a.a%3B%0D%0A%7D

Dreamerinnoise
02.11.2016
11:17:56
https://www.typescriptlang.org/play/index.html#src=let%20displayConfig%20%3D%20%7B%0D%0A%20%20%20%20%22from%22%3A%200%2C%0D%0A%20%20%20%20%22to%22%3A%20100%2C%0D%0A%20%20%20%20%22color%22%3A%20%22%23fc0%22%2C%0D%0A%20%20%20%20%22displayType%22%3A%20%22all%22%0D%0A%7D%3B%0D%0A%0D%0A%0D%0Afunction%20setDisplay(json%3AObject)%20%7B%0D%0A%20%20console.log(json)%3B%0D%0A%7D%0D%0A%0D%0AsetDisplay(displayConfig)%3B

Dreamerinnoise
02.11.2016
11:18:26
а, ну да. Не пойдёт тогда)

Aleh
02.11.2016
11:22:12
https://github.com/amilajack/eslint-plugin-flowtype-errors а насколько шустро он работает на реальных проектах? Надо ж по всем импортам пробежаться
я попробовал для ts аналогичное, оно секунд 4-5 на нашем проекте думает примерно, надо кеши как в tsc -w позакидывать, но все равно

на маленьком проекте, например если сам этот скрипт чекать, то справляется за сотню мс, т.е. получится также красиво как в том превью

Vasiliy
02.11.2016
11:26:57
я его себе поставил, пока работает моментально, но проект маленький, поэтому не объективно)

Aleh
02.11.2016
12:00:34
надо побольше поиграться с кешем для всего этого дела конечно

Vasiliy
02.11.2016
12:26:49
хм, вопрос про eslint + flow + react

export default class Button extends Component<DefaultProps, Props, State> { props: Props; // <-- если убрать это то будет react/prop-types

нашел это ишью, но ниче не понял https://github.com/yannickcr/eslint-plugin-react/issues/453, там как-то глухо все: "With babel-eslint, it seems to be working fine.", у меня как-то не очень работает)

в смысле react/prop-types eslint error/warn будет, если не писать props: Props

хотя пользы от них все равно не много, думаю можно совсем отключить это правило и не писать props: Props

Nikita
02.11.2016
16:21:59
https://github.com/facebook/flow/commit/167b126b81ead513274678e4895f769525d6decb

ну ничоси

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