@typescript_ru

Страница 570 из 669
Le
04.04.2018
18:08:56
ну так-то да

как-то так

но я бы через .map и [].concat(...x) сделал

не люблю я эту вашу иммутабилити

Google
Alex
04.04.2018
18:12:08
а понял

Le
04.04.2018
18:12:32
это как
ну вот эти все [...x] {...x}

Morsik
04.04.2018
18:13:17
но я бы через .map и [].concat(...x) сделал
так вроде у тебя иммутабельное решение тоже

Le
04.04.2018
18:13:41
так вроде у тебя иммутабельное решение тоже
сорт оф, у меня создается один большой массив из кучи маленьких один раз

а не каждый вызов reduce

?

Alex
04.04.2018
18:22:46


Le
04.04.2018
18:23:24
я не про эстетику же, не люблю объекты копировать внутри reduce

Andrey
04.04.2018
18:39:57
Гитхаб. React-material-ui-keyboard Хотел повысить версию реакта и запуллреквестировать. Форкнул и установил зависимости. . Запускаю нпм тест и вижу милионы строк ощибок. Там турескрипт. Давайте похоливарим на тему целесообразности типизации в js?))

Le
04.04.2018
18:41:35
это может и из-за самого тс быть кста, если ошибки экзотические

я обновил тс с 2.6 на 2.7 и он мне на пару классов поругался

Andrey
04.04.2018
18:42:09
Ну погдяди сам что за ошибки. Ибо они жосткие там и хз как чинить

Google
Le
04.04.2018
18:42:32
ну покажи кусочек шоль

Andrey
04.04.2018
18:42:51
Та я в маршрутке с телефона (

Типизация нужна для того чтобы в компилируемых языках оптимизатор у было легче выполнять свою работу) а в жсе у нас ведь ничего не оптимизируется т.к. компиляции нет)

Хэх. А есть способ починить ошибки тс ? Ну может оно умеет как eslint --fix?

Le
04.04.2018
18:46:13
не

вроде не

Aleh
04.04.2018
18:47:15
какие-то фиксы умеет tsserver

но это не просто cli вызов

Le
04.04.2018
18:57:18
а как же рефакторинг
как же я тайпскрипточую

Le
04.04.2018
19:02:07
там 2.4.2
я про то, что новые ошибки могут появляться хотя по логике semver не должны

Morsik
04.04.2018
19:05:02
я про то, что новые ошибки могут появляться хотя по логике semver не должны
это как посмотреть, по факту тайпскрипт все равно компилит файлы (в не зависимости от ошибок)

Andrey
04.04.2018
19:06:39
а как же рефакторинг
Тесты ведь.. если ты написал ужасгый код, то он даже с типами будет ужастен. Хотя такие штуки как интерфейсы могут чуть помочь наверное. Возник вопросик каверзный, как оно в качестве инструмента для рефакторингов?

Le
04.04.2018
19:07:18
это как посмотреть, по факту тайпскрипт все равно компилит файлы (в не зависимости от ошибок)
наверно не расценивается как breaking change потому что без флагов типа --strict этой ошибки не будет

Morsik
04.04.2018
19:08:30
там ошибки кстати появляются от обновления реакта

Aleh
04.04.2018
19:09:16
Тесты ведь.. если ты написал ужасгый код, то он даже с типами будет ужастен. Хотя такие штуки как интерфейсы могут чуть помочь наверное. Возник вопросик каверзный, как оно в качестве инструмента для рефакторингов?
Тесты не дают информации тулзам для работы с кодом, кайф в автоматических рефакторингах и возможности видеть все поля объекта навкдя на него курсор

Alex
04.04.2018
19:09:44
Тесты ведь.. если ты написал ужасгый код, то он даже с типами будет ужастен. Хотя такие штуки как интерфейсы могут чуть помочь наверное. Возник вопросик каверзный, как оно в качестве инструмента для рефакторингов?
допустим есть какой-то класс А, в нём есть работа с ещё одним классом Б, и с третьим классом С который находится в Б, тебе нужно изменить название метода в Б, меняешь его, меняется везде, если были функции типа

(some)=> (some) переименуется в скобках, аргумент останется some и будет ошибка

Google
Morsik
04.04.2018
19:11:05
там ошибки кстати появляются от обновления реакта
а, или я криво запускал в первый раз

> Cannot find module 'react/lib/getNextDebugID' from 'instantiateReactComponent.js'

Alex
04.04.2018
19:11:37


константу пришлось вручную переименовывать

Andrey
04.04.2018
19:12:08
допустим есть какой-то класс А, в нём есть работа с ещё одним классом Б, и с третьим классом С который находится в Б, тебе нужно изменить название метода в Б, меняешь его, меняется везде, если были функции типа
Ну наверное это тема когда работпешь не в команде. Т к если мы в команде екстендим классы друг от друга то через месяц никто не понимает что происходит в коде и как чинить баги ) особенно если баги в классе А

Согласен, удобно. Кажется вебсторм тоже так умеет

С жсом

Чего ещё есть полезного в тс? Поделитесь плиз

Aleh
04.04.2018
19:13:48
У вебсторма для жс не оч

Max
04.04.2018
19:16:02
да норм

andretshurotshka?❄️кде
04.04.2018
19:20:40
выглядит стремно из-за всех кастов)

Alex
04.04.2018
19:22:36
выглядит стремно из-за всех кастов)
я убрал пару any[] из аргументов тип ...args

но оно лучше не стало

Дмитрий
04.04.2018
19:22:51
Ехал any через any

andretshurotshka?❄️кде
04.04.2018
19:23:01
видит any any any

Alex
04.04.2018
19:23:04


andretshurotshka?❄️кде
04.04.2018
19:23:08
пиу пиу пиу

Дмитрий
04.04.2018
19:23:18
?

Alex
04.04.2018
19:23:21
ну тут без any никуда

Alex
04.04.2018
19:23:35
Сунул эни руку в эни Undefined is not a function

Google
Alex
04.04.2018
19:24:48
тут только один каст в T, так шо всё норм

andretshurotshka?❄️кде
04.04.2018
19:28:18
https://flow.org/try/#0KYDwDg9gTgLgBAMwK4DsDGMCWEVzTtAQxgB4AVALjgCoA+AClUxgGcqyBtAXQEo4BvAFBw4UYDCRRcJAKpU69QlADmbODO58AvLQHCReHC3iE4WuE1YA6ALaEwjFMzO7L9Kx6WqePfSLESUnDcVvjoxO6eviIAvoJxBnCCYcZwpuZhRDD0HIraugDkABbAADalEAUANHB5LsFcNXU6cACMvDkFhAW8QA

Alex
04.04.2018
19:29:23


Artur
04.04.2018
19:29:59
Ну наверное это тема когда работпешь не в команде. Т к если мы в команде екстендим классы друг от друга то через месяц никто не понимает что происходит в коде и как чинить баги ) особенно если баги в классе А
как раз таки когда ты работаешь один, то ты в голове как правило можешь все нюансы удержать. А вот в команде тс сильно помогает находить ошибки на ранних стадиях. Считай типы этакими тестами, которые писать не надо. Вот мне недавно пришлось один метод сделать из синхронного асинхронным. Метод использовался много где, и все эти места каскадно пришлось сделать асинхронными и так по рекурсии. Я не знаю сколько бы я проторчал без ts вкупе с tslint и правилом no-floating-promises

или например такой кейс - у нас бекенд отдаёт своё описание в raml, мы его превращаем в ts-дефинишены. И если внезапно бекенд возвращал string, а стал возвращать string | number то фронт тупо не соберётся из-за типов.

Ну и вообще, конечно, типы в теории могут помочь генерировать более оптимальный js, но этого пока нет

Alexander
04.04.2018
19:32:58
Ну и вообще, конечно, типы в теории могут помочь генерировать более оптимальный js, но этого пока нет
Ну, например массивы мономорфные получаются. Вроде бы turbofan это хорошо оптимизирует

Типа в const arr: string[] не попадет чиселка, и это хорошо

Artur
04.04.2018
19:33:40
их и без этого мономорфными можно делать
добавляя в рантайм проверки?

Alexander
04.04.2018
19:33:46
Типа можно и без линтера стайл гайд выдерживать)

Но с линтером легче

добавляя в рантайм проверки?
Нет, в рантайме всякое может случится. Но вероятность такого меньше

Artur
04.04.2018
19:34:17
Типа можно и без линтера стайл гайд выдерживать)
да можно сразу писать без багов и так чтоб работало как задумывалось, чо уж )

Alexander
04.04.2018
19:34:31
Так и надо))

Еще надо писать чистый код

А то грязный плохо работает)

Artur
04.04.2018
19:34:56
чтоб вот прям написал, и не запуская git push production

Дмитрий
04.04.2018
19:35:16
Нормально делай - нормально будет

Google
Aleh
04.04.2018
19:35:19
Надо делать хорошо, а не плохо. И еще куча практических советов

Дмитрий
04.04.2018
19:35:48
На коболе

Alexander
04.04.2018
19:35:57
Потому что кобол хороший?

Дмитрий
04.04.2018
19:36:22
Хе хе, не совсем

Alex
04.04.2018
19:38:22


andretshurotshka?❄️кде
04.04.2018
19:48:27
Скоро

Max
04.04.2018
19:48:53
что именно?

Alex
04.04.2018
19:49:49
generic типы в jsx

не работают

Max
04.04.2018
19:50:06
ээээ

export class CreateQuotePage extends React.Component<RouteComponentProps<{}>, State> {

у меня так работает

или вы про что?

Valeriy
04.04.2018
19:50:53
webstorm случайно не умеет скрывать описательную часть типов? :))

Alex
04.04.2018
19:50:53


Valeriy
04.04.2018
19:51:13
а то описания типов больше чем кода порой

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