@typescript_ru

Страница 229 из 669
sne18
13.05.2017
18:20:27
А

Vladimir
13.05.2017
18:21:54
Сергей
13.05.2017
18:33:34
Husky
это ж не линтер)

Дмитрий
13.05.2017
18:35:56
Ето пёс

Google
Vladimir
13.05.2017
18:40:16
Это "как настроить его принудительно перед коммитом"

Aleh
14.05.2017
00:43:23
https://github.com/babel/babylon/pull/523

вроде хотят в 7.0 как экспериментальную фичу добавить

Юрий
14.05.2017
05:54:43
Всем привет. Наткнулся на занимательный момент: http://www.typescriptlang.org/play/index.html#src=class%20UserId%20%7B%0D%0A%20%20%20%20value%3A%20String%0D%0A%20%20%20%20constructor(str%3A%20String)%20%7B%0D%0A%20%20%20%20%20%20%20%20this.value%20%3D%20str%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0Aclass%20Password%20%7B%0D%0A%20%20%20%20value%3A%20String%0D%0A%20%20%20%20constructor(str%3A%20String)%20%7B%0D%0A%20%20%20%20%20%20%20%20this.value%20%3D%20str%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0Aconst%20userId%20%3D%20new%20UserId(%2216c8bde9-7c3a-400d-aead-bfec582b7103%22)%0D%0Aconst%20password%20%3D%20new%20Password(%221q2w3e4r5t%22)%0D%0A%0D%0Afunction%20updateUserPassword(userId%3A%20UserId%2C%20password%3A%20Password)%3A%20Promise%3Cvoid%3E%20%7B%0D%0A%20%20%20%20return%20Promise.resolve()%20%2F%2F%20implementation%0D%0A%7D%0D%0A%0D%0AupdateUserPassword(password%2C%20userId)%20%2F%2F%20%D0%BF%D0%BE%D1%87%D0%B5%D0%BC%D1%83%20%D1%82%D1%83%D1%82%20%D0%BD%D0%B5%20%D1%80%D1%83%D0%B3%D0%B0%D0%B5%D1%82%D1%81%D1%8F%20%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80%3F%0D%0AupdateUserPassword(userId%2C%20password)%0D%0A Даже при неправильном порядке аргументов компилятор не ругается. Почему так?

Юрий
14.05.2017
06:09:31
? спасибо за инфу

Igor
14.05.2017
09:31:56
Я так понимаю способа запретить передавать null там где требуется number нельзя? function caller() { test(null) } function test(a: number) { }

Юрий
14.05.2017
09:34:57
сделай поля value private или protected
Ну это какое-то слишком частное решение. А вдруг мне публичные поля нужны?

Aleh
14.05.2017
09:35:13
всегда можешь геттер сделать

можешь сделать любое другой фейковое поле приватным

Google
Dreamerinnoise
14.05.2017
09:46:44
Вообще по дефолту же надо делать приватные поля

Igor
14.05.2017
09:48:03
strictNullCheck
спасибо, то что надо

andretshurotshka?❄️кде
14.05.2017
09:52:38
еще просто strict: true врубает все что можно

Aleh
14.05.2017
09:54:55
это в 2.3, да

andretshurotshka?❄️кде
14.05.2017
19:36:44
https://mobile.twitter.com/i/moments/863202076091961345

Artur
14.05.2017
19:45:08
Алексей
14.05.2017
19:47:01
Хорошее сравнение
Не совсем. Видно что они любит Flow - так что и результаты сравнения выворачиваются в соотвествии с "желаемым" результатом

Artur
14.05.2017
19:47:45
Тем не менее, я отсюда узнал про особенности, которые позволяют flow лучше типы выводить

Igor
14.05.2017
19:48:13
Хорошее сравнение
Flow - это же чекер кода? Как это может исправить убогость JS? Вся надежда на Reason

Алексей
14.05.2017
19:49:05
https://twitter.com/thejameskyle/status/863181426769879040?ref_src=twsrc%5Etfw&ref_url=https%3A%2F%2Ftwitter.com%2Fi%2Fmoments%2F863202076091961345

TypeScript у него работает без выключенного AllowExplicitAny. Поэтому TS не считает это ошибкой let add1 = (a, b) => a + b; add1([], {});

Vladimir
14.05.2017
19:50:18
О том и речь, что тайпскрипту нужно больше аннотаций

Алексей
14.05.2017
19:50:23
С его точки зрения это совсем как плохо. Но о том что эта ошибка не находится пока у тебя нет флага. Он не уточняет.

Vladimir
14.05.2017
19:51:36
Но я согласен, что лучше приводить примеры, когда ТС фейлит со всеми возможными включенными флагами

Алексей
14.05.2017
19:53:37
В данном примере он показал то что TS пропускает ошибку. И он прав. Но он не тратит время на уточнения, на описание в каких ситуациях это происходит и почему. И как бы намекает "ну вот смотрите какой TS не хороший, а Flow молодец" PS: Да в TS нужно больше времени потратить на описание типов, но мне кажется не намного больше чем во Flow.

Aleh
14.05.2017
19:57:12
Еще можно у флоу в игнор добавить файлы и делать в них ошибки, какой флоу плохой)

Юрий
15.05.2017
05:13:06
Народ, кто может подкинуть типичный пример из жизни с частичным применением функции или карированием?

Юрий
15.05.2017
05:33:09
thunk в redux, асинхронный валидатор в ангуларе
А более общих примеров нету? Готовлю материалы для презентации, хочу охватить как можно большую аудиторию, при этом совсем тупых примеров типа add(1)(2) тоже не хочется показывать

Google
Kirill
15.05.2017
05:33:33
redux connect

marat
15.05.2017
05:35:42
А более общих примеров нету? Готовлю материалы для презентации, хочу охватить как можно большую аудиторию, при этом совсем тупых примеров типа add(1)(2) тоже не хочется показывать
в жизни и без карирования можно извернуться, затрудняюсь назвать более общий пример, чем из общеиспользуемых библиотек)

marat
15.05.2017
05:36:50
да и middleware сплошное карирование

Kirill
15.05.2017
05:37:26
js bind это каррирование?

marat
15.05.2017
05:38:38
не, это просто подмена контекста

хотя внутри наверно каррирование все же

Юрий
15.05.2017
05:40:08
ок, спасибо за советы

Artur
15.05.2017
06:34:56
не, это просто подмена контекста
Можно и каррирование сделать.

Я частичное применени использую так: Допустим есть реакт-компонент, в нём рендерится список, и нам при клике на элемент списка надо что-то сделать: class SomeComponent extends React.Component { private onItemClick = (item: Item) => { } render() { return <div>{this.props.items.map(item => <div onClick={this.onItemClick.bind(this, item)}>{item.name}</div> )}</div> } } Вот обработчик onClick на каждом элементе - частично применённая функция.

Юрий ^^

Aleh
15.05.2017
06:38:48
Фильтры мапы с каким-то контекстом

Юрий
15.05.2017
06:39:20
ок. А кто-нибудь использует частичное применение для просасывания какого-нибудь контекста между большим количеством функций или когда вложенность функций очень большая?

вообще изначально я хочу именно такую проблему найти - когда есть множество функций, у которых есть некоторый аргумент, который фактическки является некоторым контекстом исполнения данной функции. Просто одно из решений данной проблемы - частичное применение с фиксированным контекстом. Но меня интересует не решение, а именно проблема.

тип того: fun1(a,b,c,common) fun2(d,e,f,common) fun3(g,h,k,common) ...

ну и при вызовах этот последний параметр приходится просто протаскивать, хотя его можно было бы просто откуда-то из среды брать

Artur
15.05.2017
06:46:02
bind в рендере еее
Конечно я не использую bind в рендере, у меня есть спец хелпер, который переиспользует результаты, но это уже другая история же

Олег
15.05.2017
06:53:44
Google
Юрий
15.05.2017
06:54:25
поменяй аргументы местами)
Есть разные решения проблемы. Но мне не решение нужно, а какия-нибудь похожая типичная проблема

Олег
15.05.2017
07:00:21


Aleh
15.05.2017
07:02:08
Еще функции удобно юзать для стейтлесс сервисов

Олег
15.05.2017
09:00:50
передает аргумент в функцию

Nikita
15.05.2017
09:01:28
Олег
15.05.2017
09:04:14
ну, это реакт... )

Artur
15.05.2017
09:04:58
а сразу передать
Сразу передать - это как?

Admin
ERROR: S client not available

Artur
15.05.2017
09:05:22
Типа так? class SomeComponent extends React.Component { private onItemClick = (item: Item) => { } render() { return <div>{this.props.items.map(item => <div onClick={this.onItemClick(item)}>{item.name}</div> )}</div> } }

Nikita
15.05.2017
09:07:09
да только функцию изменить private onItemClick = (item: Item) =() => {}

Aleh
15.05.2017
09:07:27
все равно, что байндить каждый раз)

Artur
15.05.2017
09:08:02
да только функцию изменить private onItemClick = (item: Item) =() => {}
В итоге получится частичное применение функции, ровно тоже самое. За одним исключением - у тебя не будет возможности просто вызвать обработчик клика, например из другого обработчика

Aleh
15.05.2017
09:08:22
получится ж

просто скобок больше

Nikita
15.05.2017
09:08:37
да и я бы логику из return вынес бы

Aleh
15.05.2017
09:09:08
короч, хватит решать несуществующие проблемы)

Aleh
15.05.2017
09:17:25
угу, все равно на каждый вызов новая функция

Google
Aleh
15.05.2017
09:18:24
продолжая путь страданий, кто-нибудь нашел вменяемый tslint конфиг?

или продолжаем ждать ts в babylon?

Сергей
15.05.2017
09:21:06
или нужен публичный общепринятый?

Aleh
15.05.2017
09:21:27
мне чес говоря впадлу тыкать опции)

хочу npm i cool-tslint-config и не париться

Сергей
15.05.2017
09:21:43
я буду писать аналог от airbnb

расшарить потом?

Aleh
15.05.2017
09:21:54
да, давай

Дмитрий
15.05.2017
09:22:28
а свой написать не?
В tslint опций не хватает

Сергей
15.05.2017
09:22:43
делать ПР

Aleh
15.05.2017
09:22:46
так и в eslint тоже, потому они плагинов написали)

Дмитрий
15.05.2017
09:23:29
В eslint даже в стандартной поставке просто тонна всего)

Aleh
15.05.2017
09:23:30
просто даж pr в babylon от команды ms есть, вот даже не знаю, стоит ли дергаться)

Aleh
15.05.2017
09:25:04
да, он чет сисярпный какой-то

Pavel
15.05.2017
10:26:52
https://github.com/eslint/typescript-eslint-parser норм тема?

Kirill
15.05.2017
10:33:51
А вот это жесткая тема? https://github.com/Microsoft/tslint-microsoft-contrib Я пробовал, показалось очень строго всё. Но в подробности не вдавался.

Max
15.05.2017
10:38:34
http://s.syabro.com/2017-05-15-13-38-57mvh.png

странная херня

Nikita
15.05.2017
10:42:43

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