Aleksandr
Aleksandr может у вас есть ссылка или знаете статью. где это разбирается или есть гайд где какие типы лучше хранить? Спасибо
Александр
Нету, делайте как вам удобно и все
Александр
Посмотрите какой нибудь большой проект на ТС, но надо понимать опять же, что это лишь видение разработчиков будет
Paul
Типы группируют по types.ts файлами ради того, чтобы их было, в первую очередь, удобно импортировать извне
Paul
А так, сейчас IDE спокойно автокомплитят любой тип из любого места лишь по его названию
Paul
Так что без разницы куда класть
Paul
Ну я про тс
Китикет
Не хотит мое vsc комплитить флоу)
Даже в импорте не комплитит, сука
Paul
С трудом представляю, зачем юзать флоу сейчас)
Paul
Кроме как в легаси проектах
Андрей
С трудом представляю, зачем юзать флоу сейчас)
Чтобы иметь нормальную непротиворечивую систему типов.
Paul
Прямо в сердечко
Abilmansur
помогите заимпортить ant css в вебпак? раньше не работал с вебпаком
Александр
Чтобы иметь нормальную непротиворечивую систему типов.
Э, а TS типа противоречив? Можете уточнить о чем речь?
Андрей
Max
1 | 2 несовместим с number, к примеру.
а вы уверены, что это ошибка?
Aleksandr
имеете ввиду привести нельзя? 3.14 как можно привести к 1|2 ? 1|2 еще к number можно. И тут появляются усложнения что из одного в другой можно, а наоборот нельзя
Paul
1|2 это сужение типа number
Александр
То есть там где принимался number и 1 и 2 пройдут
Александр
А вот наоборот нельзя, что верно
Konstantin
1 | 2 несовместим с number, к примеру.
Ну у него же нет explicit контравариантности вроде. Тогда имеет смысл
Андрей
А должен ?
Я не вижу ни одной причины почему такой код должен быть некорректным.
Александр
Вот если вы там const добавите то заработает
Александр
А так откуда тайпскрипт знать может что переменная не изменила значение
Андрей
Вот если вы там const добавите то заработает
https://www.typescriptlang.org/play/#code/MYewdgzgLgBAhgJwXAngLhgQSagPARhgB8YAmYmAZgD4YBeGAbXwBoy3KBdAbgChRIsOBjABXALYAjAKYJ6MACx9eiZCgB0ASzDAANqIAm0iAAo4ASm5A
Paul
То что вы кидаете — работает как и должно
Paul
Бронейбойно, как по мне
Konstantin
Нет
Что, нет?
Андрей
Конечно ошибка, ведь 4 не входит в 1/2/3
Прекрасно. А теперь это значение приходит от пользователя.
Paul
Я не пишу код так, что инпут пользователя может аффектить таким образом программу
Cenator 🐈
Александр
Прекрасно. А теперь это значение приходит от пользователя.
А что ожидали? Пользовательский ввод надо фильтровать
Konstantin
3,5,2
Александр
Напишите корректный код
Сейчас доберусь до компа и гляну
Александр
Напишите корректный код
Так проверьте что там 1,2,3 и ни что-то друге, вот вам система типа и говорит что код неверный
Aleksandr
Это разные типы. вы должны сначала привести их
Konstantin
Вру, так работает
Aleksandr
попробуйте строготипизированные норм языки с генериками
Андрей
Так проверьте что там 1,2,3 и ни что-то друге, вот вам система типа и говорит что код неверный
Почему мне поверить даже ts не даёт?) Ладно вывод типа, но даже проверку не дают сделать.
artalar
Напишите корректный код
С реплом косяк какой-то
Андрей
С реплом косяк какой-то
Одна ошибка сменится на другую. Так что суть не меняется.
Александр
Почему мне поверить даже ts не даёт?) Ладно вывод типа, но даже проверку не дают сделать.
Ну так у вас несовместимость типов, include ожидает на вхоже 1|2|3 а вы ему number
Андрей
Ну так у вас несовместимость типов, include ожидает на вхоже 1|2|3 а вы ему number
Я и говорю, что система типов неподходящая для реальных условий.
Андрей
Верит.
А теперь пусть в массиве будет 150 значений.
Александр
Я и говорю, что система типов неподходящая для реальных условий.
Не понимаю почему, в приведённых вами примерах все работает как задумано
Александр
А теперь пусть в массиве будет 150 значений.
Вы неверно ставите задачу и решаете ее не верно
Андрей
Вы неверно ставите задачу и решаете ее не верно
Расскажите как правильно поставить задачу.
Александр
задумано != удобно.
По мне так все вполне удобно, и ваш пример подтверждает что тайпскрипт нормально работает
Konstantin
А теперь пусть в массиве будет 150 значений.
А ты в каком языке программирования видел что у тебя массивы контравариантны были?
Александр
Слыхать то слыхал, но вот чето больно мудрено везде говорится
Konstantin
А что это значит?
Это возможность с низшего типа обратиться к высшему (очень грубо говоря)
Александр
Уловил кажется мысль
Александр
Не, ошибка реально очкень тупая, не должно быть такого
Может и так, в споры с утра что-то не охота, на своём опыте просто не сталкивался с палками в колёсах от ТС
Tolych
Товарищи! Есть модель формы [{...input attr1}, {...input attr2}, { ...input attr3}, { ...input attr4}]. На каждый input вешаю событие onChange, через которое заполняю общий state, при этом при изменении одного инпута происходит перерендер других инпутов. Подскажите каким образом возможно уйти от данного перерендера? Возможно ли решить данную задачу не избавляясь от [].map ?
Андрей
А ты в каком языке программирования видел что у тебя массивы контравариантны были?
Есть конкретные места для примитивных типов, в которых система типов обязана юнион даункастить к общему типу, чтобы можно было писать нормальный код. К примеру, так делает flow. И я его выбрал включая и эту причину. Для номинальных типов да, такое поведение является корректным.
artalar
Есть конкретные места для примитивных типов, в которых система типов обязана юнион даункастить к общему типу, чтобы можно было писать нормальный код. К примеру, так делает flow. И я его выбрал включая и эту причину. Для номинальных типов да, такое поведение является корректным.
Должно быть примерно так, я думаю https://www.typescriptlang.org/play/#code/C4TwDgpgBAggPAFQHxQLxQN4Cgq6gSwDsBjAGwFcATCAZwC4o5gkAKGiAQwCdiALAUVIQAthELAGwAJRoUCKBAAewMZRpRgUAPxQARgHt9QjoSgNCEAG4QuULAF8sWamW7RL3KBwbwAjFAAfKAAmQKgAZiQnYn1CGk1TdAA5cmFdGxYWAFkOYF4AOi4TSn1hFhkAKihfAAYpfOB9ADF8RQhKFjqpJw58ojIqWhZCbt7+imoaFgByQmmpIA
Volodymyr
Товарищи! Есть модель формы [{...input attr1}, {...input attr2}, { ...input attr3}, { ...input attr4}]. На каждый input вешаю событие onChange, через которое заполняю общий state, при этом при изменении одного инпута происходит перерендер других инпутов. Подскажите каким образом возможно уйти от данного перерендера? Возможно ли решить данную задачу не избавляясь от [].map ?
этого не должно происходить, у тебя каждый инпут имеет своей вейлью. Ты можешь сравнивать старое значение с новым, и только потом рендерить или че там еще делаешь. либо тебе надо копировать старый стейт вместе с изменениями конкретного инпута.
Андрей
Должно быть примерно так, я думаю https://www.typescriptlang.org/play/#code/C4TwDgpgBAggPAFQHxQLxQN4Cgq6gSwDsBjAGwFcATCAZwC4o5gkAKGiAQwCdiALAUVIQAthELAGwAJRoUCKBAAewMZRpRgUAPxQARgHt9QjoSgNCEAG4QuULAF8sWamW7RL3KBwbwAjFAAfKAAmQKgAZiQnYn1CGk1TdAA5cmFdGxYWAFkOYF4AOi4TSn1hFhkAKihfAAYpfOB9ADF8RQhKFjqpJw58ojIqWhZCbt7+imoaFgByQmmpIA
Ну, includes не должен принимать any, имхо. Только number, если у тебя юнион чисел. + у тебя всегда будет типом результата never, что тоже не очень(
artalar
Ну, includes не должен принимать any, имхо. Только number, если у тебя юнион чисел. + у тебя всегда будет типом результата never, что тоже не очень(
Ну я общий принцип описал, что метод подобного рода должен принимать не дженерик инстанса, а подтип дженерика
Sm•ok
У кого нибудь были траблы, что onSubmit в antd Form триггерит все формы при сохранении ?
Abilmansur
почему при установке ant css в webpack plugins страница не открывает? выдает ошибку unexpected token *