Дима
А я расцениваю его примеры как ещёё одно доказательство того, что флоу может самостоятельно следить за черезчур умными джунами
Андрей
Как бы статический анализ служит для ограждения от ошибок.
Дима
И пояснять за базар при изменении прототипов и прочей дури
Anonymous
Как бы статический анализ служит для ограждения от ошибок.
Что ты хочешь сказать что этот flow ну вообще сломать нельзя?
nopefish
Всем привет. Небольшой оффтоп. Кто знает дополнение для лисы для изменения цвета сайта чтобы было удобнее читать?
Андрей
Что ты хочешь сказать что этот flow ну вообще сломать нельзя?
Теоретически нет. Его теория стройна. Если только при реализации не накосячат.
nopefish
Надо для андроида
Andrey
Привет, подскажите как изменить ISO дату (обнулить время, и прибавить день) и вернуть текже ISO. setDate возвращает UTC number.
Anonymous
Теоретически нет. Его теория стройна. Если только при реализации не накосячат.
а тут что не так? https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVUCuA7AxgFwEs5swo44AKAOluwEowBvVMMAJwFN9N3TsA2gAYAusjCCAjGPCCATDLCShAblQBfdOSr0gA
Дима
А что тут не так?))
Дима
n: any[]
Aleserche
Надо для андроида
Stylish разве не подходит?
Дима
При умножении кучи не-чисел получим NaN'ы, в итоге флоу верно вывел тип number
nopefish
Stylish разве не подходит?
Попробую. Желательно с пресетом просто
Андрей
При умножении кучи не-чисел получим NaN'ы, в итоге флоу верно вывел тип number
Ну, справедливости говоря, пользователь хотел немного другого.
Дима
А чего?
Андрей
а тут что не так? https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVUCuA7AxgFwEs5swo44AKAOluwEowBvVMMAJwFN9N3TsA2gAYAusjCCAjGPCCATDLCShAblQBfdOSr0gA
Flow в случае со списками идёт на поводу у пользователя и действует менее строго. Иначе приходилось бы проверять наличие каждого элемента списка.
Андрей
В остальном все строго.
Anonymous
А чего?
какого он туда undefined пустил?
Дима
undefined[]
Anonymous
вроде же вывод типов в том и заключается что все три должны быть числами
Андрей
вроде же вывод типов в том и заключается что все три должны быть числами
https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVUCuA7AxgFwEs5swo44AKAOluwEowBvVMMAJwFN9N3TsA2gAYAusjCCAjGPCCATDLCShAblQBfdOSoByAIY76QA
Anonymous
если путаю сам синтаксис поправьте меня https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVUCuA7AxgFwEs5swo44AKAOluwC4xtMBbAIwFMAnAbQF0AlI2btuYAN6owYLh3yYupbDwAMfZEx4BGdeGUAmXWC0qA3KgC+6clQFA
Андрей
Иначе уж совсем жить было бы невозможно.
Anonymous
Подожди бля, n[0] ... n[2] числа, всегда числа, значит три аргумента тоже должны быть всегда числа обязательные.
Дима
Если нужны конкретные три переменные, то пиши конкретные три переменные, а не массив неопределенной длины
Anonymous
Андрей
это все отмазки какие-то теперь пошли, код я пишу не правильный теперь
За пределы массива ты можешь уйти в случае Flow. На это осознанно пошли.
Anonymous
где логика?
Дима
А кто-то разве обещал тебе что тебе разрешат писать все что вздумается?
Anonymous
https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVUCuA7AxgFwEs5swo44AKAQwBowA6J7ASjAG9UwwAnAU3yYepasjDYA2gAYAumMmyxARikBuVAF905KiyA
Дима
https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVUCuA7AxgFwEs5swo44AKAOluwC4wBtbTAWwCMBTAJwBowrTrwFDuPALoBKMAG9UYMDy75MPUtiYAGCckFMAjLvCaATMbAGtAblQBfdOSpaBWqUA
Anonymous
А кто-то разве обещал тебе что тебе разрешат писать все что вздумается?
ваш коллега по дискурсии говорил что сломать нереально
Андрей
где логика?
Прочитай что я тебе выше написал.
Андрей
Андрей
Такое поведение задумано.
Anonymous
Такое поведение задумано.
Ну я так и думал, о чем мы вообще тут спорим то.
Дима
Флоу форсит употребление сабсета жс. Не все конструкции языка для него корректны и в этом то собственно и цель проекта — жс без дури
Anonymous
Только ты сказал выше что его нельзя сломать вообще никак блять, я его два раза сломал, в первом случае я вышел за пределы джуниорства, по втором так и задумано
Андрей
Ну я так и думал, о чем мы вообще тут спорим то.
В случае списков неопределенной длины Flow не обязывает вас проверять наличие каждого элемента, иначе код был бы просто ужасным.
Дима
Да лан, короче, всё можно сломать, шыт хэппенс
Андрей
Только одна поломка желательна, а другая сюрприз)
Anonymous
В случае списков неопределенной длины Flow не обязывает вас проверять наличие каждого элемента, иначе код был бы просто ужасным.
что-то я тогда не понимаю какую он защиту то дает, если когда я его ломаю ты говоришь код писать надо правильный...
Андрей
И все будет чики-пуки.
Anonymous
Я тебе скинул пример если ты не заметил
И теперь обратно к джуниорам!
Андрей
Flow даёт тебе только в одном месте ошибиться. При получении элемента из списка неопределенной длины.
Дима
Таплы может purescript проверять, он тебе прям прямо скажет, братан ты не рассмотрел варианты когда n2 не существует
Anonymous
Скажи Flow, что надо иметь 3 элемента.
Это очевидно, потому что код ниже это явно указывает.
Дима
Но с пурскриптом уже не поджуниорстувешь, хе-хе
Андрей
Это очевидно, потому что код ниже это явно указывает.
У Flow есть система типов. И пока она такая.
Андрей
И она покрывает все, кроме списков неопределенной длины.
Anonymous
У Flow есть система типов. И пока она такая.
Ну дак и не надо заявлять что он не убиваемый и не даст ошибки делать.
Андрей
Если тебе надо что-то более конкретное, то надо уточнять руками.
Дима
Вообще говоря, ничто не даст такой гарантии включая идрис потому что это эквивалентно решению проблемы останова
Дима
Которую доказанно решить нельзя
Андрей
Собственно как и в ts.
Сравни размах ошибок.
Дима
Дима
Разница только количества этих пояснений
Anonymous
Сравни размах ошибок.
все можно сломать, а flow для того что бы джунов посадить и не париться, ts для остальных, все можно закончить.
Андрей
Ок, все говно.
Дима
Привязанный к жс код обязан идти на ряд жертв кстати
Дима
Чисто из-за особенностей языка, слабо выражаемых через обычный процесс вывода типов
Дима
Поэтому чтобы сделать например purescript, да хотя бы даже elm, надо отказаться практически от всего языка в самых основах
Anonymous
Ок)
Пример твой на ts я посмотрю флаги.
Anonymous
Потом отпишусь
Anonymous
Все давайте пацаны, пора уже дела поделать
Дима
Я только проснулся
Дима
Ну что кэп, это вообще наоборот всегда довольно тонкие моменты Типа того, почему type C = { ...{ a: number }, ...{ b: string } } будет иметь все поля опциональными { a?: number, b?: string }
Андрей
Потому что это не exact типы.
Дима
Ну это да, но тип я к тому, что некоторые wtf сходу не определишь и пока мы в жс с этим придётся иметь дело