Я устал чтото пытаться обьяснить человеку - который не может адекватно прочитать не то что коментарий, а даже материал который скидывает... Сами попытайтесь понять почему выше указаное не работает, и советую избавиться от привычки вырезать как можно больше кода - это ведёт к очень плачевным результатам...
Ну так загляните в эту доку - буквально тоже самое что я написал, только не воид а Moment возвращается :D
function fn(x: string): Moment;
function fn(x: number): Moment;
function fn(x: number | string) {
// When written with separate overloads, incorrectly an error
// When written with union types, correctly OK
return moment().utcOffset(x);
}
а смысл от этого огромный - так как типизация это одновременно документация:
Уже первый вариант более приятный, так как относится к конкретному юзкейсу. А если число типов которые могут быть переданы будет намного больше и это будут не примитивы, а какие-нибудь сложные классы, которые значительно влияют на исполнение(например возникает возможность выброса особых исключений) то первый вариант будет юзерфрендли, в отличии от второго. И материть будут за второй код, в то время как за первый будут хвалить :D
Основная "фича" данного подхода прерывание асинхронных операций, что в вашем х*к х*к и вродакшн не предусмотрено. Но на самом деле на дебаунсе код не многим бы отличался, просто везде пробрасывался бы абортконтроллер который при старте нового чейна обнулял предыдущий, но в данной статье цель автора в демонстрации приятнoй утилитки которая может комуто да облегчит жизнь.
[занудамод]Тут у меня придирка конкретно к примеру - зачем делать так, если нужно делать так. Если пример только для примера - то всегда будет такое. Советую пытаться находить "рабочий" код для таких вещей- так как если в начале возникают сомнения, то дальше быть солидарным с автором становиться всё сложнее и сложнее :) [/занудамод]
Перефразирую - в 99.999% кейсов реальный JS код - валидный TS. Такой конструкт в реальной жизни не имеет права на существования и руки должны быть вырваны тем кто так пишет, совершенно нечитаемо :D. Зато отличный пример почему TS нужен - в данном случаем абсолютно нечитаемый код должен быть отформатирован хоть немного.
Однако даже так - дополнительные скобки - не есть `масса условностей и многословности, которые заставляет нас делать ts`
К сожалению это огромная проблемма большинства статей :( Любая фича на хайпе преподносится как панацея и вообще все всю жизнь делали плохо, а теперь наконец начнут нормально...
из последнего помню про сигналы в ангуляре начитался такого, что ночью кошмары снились :D
Я бы сказал даже много. JSDoc спокойно работает если насроена экосистема - можно JSDoc'ом полностью покрыть тайпчекинг(если использовать только простые типы конечно, до TS ему далеко). И выше описаный пример показал бы ошибку если бы мы в функцию передали стринг. Тут же скорее придирка к VSCode, но автор похоще не до конца разобрался в теме
так любой JS код это валидный TS. TS не заставляет вас ничего делать кроме транспайлинга. Есть вероятность что могут возникнуть ошибки компиляции, но они отключаются 1й строчкой в конфиге и вся ответственность ложится на разработчика
К теме топика это имее мало отношения - каждый организует свой код как хочет, можно хоть ифелсы, хоть свичи, хоть объект литерал - результат неизменится ;)
Удивительно сколько малопопулярных РТС началa 2к лахматых есть, которые лучше WC3. Сам до сих пор поигрываю в Warlords Battlecry 2, и мечтаю создать римейк :D
С пайтаном не работал, но трогал другие языки, и в яве самая ужасная среда разработки. Сам язык не плохой, но почемуто все проекты на нём едут будто на костылях. так что для меня однозначно пайтон(а теперь пошёл дальше работать над ява проектом потомучто в компании решили что ява наше всё :D)
С Local Storage понятно - устоявшийся стандарт хранилища на стороне клиента, но, как и всегда, есть нюансы - максимальный размер 5 Мб, а еще он синхронен и блокирует основной поток.
тут чутка ошибка - `local storage` вмещает 10mb, 5mb это `Session Storage`
Я устал чтото пытаться обьяснить человеку - который не может адекватно прочитать не то что коментарий, а даже материал который скидывает... Сами попытайтесь понять почему выше указаное не работает, и советую избавиться от привычки вырезать как можно больше кода - это ведёт к очень плачевным результатам...
Ну так загляните в эту доку - буквально тоже самое что я написал, только не воид а
Moment
возвращается :Dа смысл от этого огромный - так как типизация это одновременно документация:
Уже первый вариант более приятный, так как относится к конкретному юзкейсу. А если число типов которые могут быть переданы будет намного больше и это будут не примитивы, а какие-нибудь сложные классы, которые значительно влияют на исполнение(например возникает возможность выброса особых исключений) то первый вариант будет юзерфрендли, в отличии от второго. И материть будут за второй код, в то время как за первый будут хвалить :D
Можно пожалуйста ссылку на источник где сказано что это антишаблоны, ни капли не верится
Мне интересно с каких пор перегрузка параметров является антипатерном? Может быть если я напишу вот так - то всё будет нормально?
Тогда же опять проблема в примере - и это то что по моему мнение не очень удачно подобрано.
ну а последнее вообще странно
так как любой маломальский знающий TS напишет
Основная "фича" данного подхода прерывание асинхронных операций, что в вашем х*к х*к и вродакшн не предусмотрено. Но на самом деле на дебаунсе код не многим бы отличался, просто везде пробрасывался бы абортконтроллер который при старте нового чейна обнулял предыдущий, но в данной статье цель автора в демонстрации приятнoй утилитки которая может комуто да облегчит жизнь.
[занудамод]Тут у меня придирка конкретно к примеру - зачем делать так, если нужно делать так. Если пример только для примера - то всегда будет такое. Советую пытаться находить "рабочий" код для таких вещей- так как если в начале возникают сомнения, то дальше быть солидарным с автором становиться всё сложнее и сложнее :) [/занудамод]
мне кажется впихивать 2 типа в 1 не самый лучший вариант, ведь всегда можно сделать перегрузку разве нет?
Перефразирую - в 99.999% кейсов реальный JS код - валидный TS. Такой конструкт в реальной жизни не имеет права на существования и руки должны быть вырваны тем кто так пишет, совершенно нечитаемо :D. Зато отличный пример почему TS нужен - в данном случаем абсолютно нечитаемый код должен быть отформатирован хоть немного.
Однако даже так - дополнительные скобки - не есть `масса условностей и многословности, которые заставляет нас делать ts`
К сожалению это огромная проблемма большинства статей :( Любая фича на хайпе преподносится как панацея и вообще все всю жизнь делали плохо, а теперь наконец начнут нормально...
из последнего помню про сигналы в ангуляре начитался такого, что ночью кошмары снились :D
Я бы сказал даже много. JSDoc спокойно работает если насроена экосистема - можно JSDoc'ом полностью покрыть тайпчекинг(если использовать только простые типы конечно, до TS ему далеко). И выше описаный пример показал бы ошибку если бы мы в функцию передали стринг. Тут же скорее придирка к VSCode, но автор похоще не до конца разобрался в теме
так любой JS код это валидный TS. TS не заставляет вас ничего делать кроме транспайлинга. Есть вероятность что могут возникнуть ошибки компиляции, но они отключаются 1й строчкой в конфиге и вся ответственность ложится на разработчика
К теме топика это имее мало отношения - каждый организует свой код как хочет, можно хоть ифелсы, хоть свичи, хоть объект литерал - результат неизменится ;)
Эко невиданые звери - мейненеры :D поправьте :)
Да не - там самые лучшие фильтры звуковые. Минимальное количество искажений и посторонних шумов при ужасных микрофонах... К WebRTC притензий нет :)
Пока с друзьями искали рабочий способ разблокирования дискорда - сидели через вк.. К сожалению по качеству звука у дискорд нет аналогов :(
Если у человека из дома всё вынесут, то никому ничего не будет, пока в полицию не поступит заявление....
Удивительно сколько малопопулярных РТС началa 2к лахматых есть, которые лучше WC3. Сам до сих пор поигрываю в Warlords Battlecry 2, и мечтаю создать римейк :D
С пайтаном не работал, но трогал другие языки, и в яве самая ужасная среда разработки. Сам язык не плохой, но почемуто все проекты на нём едут будто на костылях. так что для меня однозначно пайтон(а теперь пошёл дальше работать над ява проектом потомучто в компании решили что ява наше всё :D)
тут чутка ошибка - `local storage` вмещает 10mb, 5mb это `Session Storage`
Уф, сложно читать из-за переизбытка запятых. А так интересно, спасибо за статью ?