Алексей
небезопасность типизации в TS не делает её менее статической
Danila
Если ты объявил переменную s типа string, ты уже никак не положишь в неё ничего другого, и тип её ты уже не сменишь. Это называется статическая типизация, насколько я могу судить.
Алексей
это делает её просто слабой
Andrey
ой, да ладно, чел просто либо брякнул не подумав, либо вбрасывает
Dmitry
кароче ладно, по-моему это просто передергивание понятий
Алексей
если бы TS был бы единственным языком, который не гаратирует корректности типов в рантайме, то ещё можно было бы спорить
Danila
Как её вообще можно гарантировать, не городя своего рантайма?
Алексей
и/или рантайм проверками типов
Andrey
очень строгим компилятором
компилятор работает на стадии компиляции, потом юзер что угодно может наделать
Danila
очень строгим компилятором
На стороне браузера только если же.
Danila
Ждем 'use types'
Andrey
Как её вообще можно гарантировать, не городя своего рантайма?
та никак, там вон пилят форк V8 с проверкой типов в рантайме
Andrey
нет, если компилятор ему не позволит
как компилятор может не позволить сделать чего то в рантайме?
Алексей
запретить все небезопасные тайпкасты например, запретить any
Алексей
конечно это будет неюзабельно совершенно
Danila
запретить все небезопасные тайпкасты например, запретить any
Как ты это запретишь, если на выходе всё равно ЖС который выполняется компилятором, которому плевать?
Алексей
в исходном языке запретить, в жсе то можно натворить что угодно
Andrey
в исходном языке запретить, в жсе то можно натворить что угодно
ну о том и речь, сколько бы типобезопасный компилятор ни был, в типонебезопасном рантайме это не поможет от слова совсем
Алексей
запретить все небезопасные тайпкасты например, запретить any
или не разрешать кастить из того же any без явных проверок в коде
Алексей
но тут уж ССЗБ как говорится
Andrey
это если в этот самый рантайм руками лезть в обход компилятора
в рантайме нет никаких компиляторов никто не мешает тебе сделать [1, 2, 3][1000] и получить дальше некорректный тип
Danila
в рантайме нет никаких компиляторов никто не мешает тебе сделать [1, 2, 3][1000] и получить дальше некорректный тип
Он намекает на то, что такой код не запустится, потому что ему неоткуда попасть в рантайм в ts-проекте
Danila
Он типа просто не пролезет
Danila
Только это веб, и рантайм у него как портовая шаболда
Danila
Подключай через <script> и погнал
Andrey
Он намекает на то, что такой код не запустится, потому что ему неоткуда попасть в рантайм в ts-проекте
как это нет юзер вводит число -> строка строку парсим в число достаем из массива по числу элемент
Andrey
дополнительные проверки порешают
да, а не "очень строгий компилятор" как ты сказал
Алексей
очень строгий компилятор может как раз заставить такие проверки написать
Danila
как это нет юзер вводит число -> строка строку парсим в число достаем из массива по числу элемент
Ну тут тоже ССЗБ, типа, тут ты не типизировал инпут и ничего не работает, в строгом языке ты не типизировал инпут и всё просто грохнулось сразу и навсегда. В любом случае должен был проверять, типа, просто жс не так очевидно тебе даст по голове, я так понимаю, об этом речь
Алексей
либо сам впихнуть эти проверки
Andrey
да взять даже range(a, b, num), где a и b - границы, а num - число из этих границ сейчас система типов в тс не сможет гарантировать, что num в диапазоне a...b
Алексей
я про то, что типы это про компайл тайм, и что там будет в рантайме, тем более в жс гарантировать вообще никто не может
С дотсаточно развитой системой типов можно добиться сколько угодно строгих гарантий.
Алексей
не в TS, да
Andrey
поэтому тс вообще ни разу не про типобезопасность, это просто подсказочки в идеешке
Алексей
Но вообще на самом деле фундаментальных оснований для такой нетипобезопасности TS особо и нет. Даже в условиях JS рантайма
Andrey
И сильно помогает при разработке?
ну да, сначала реактил на жс, потом перекатился на тс, возвращаться нет абсолютно никакого желания
Andrey
так, че там дальше на повестке оверхед стайледов в рантайме че надо знать ждуну какие еще платиновые топики остались 😂
wolfe
И сильно помогает при разработке?
сильно, но типы есть не во всех либах и иногда не совпадают :D
Andrey
Но если типы не совпадают оно не скомпилиться же
как настроишь может просто с ворнингом сбилдить
Alexander
Ну так нет смысла пихать any если решили типтзировать
Алексей
вообще такой неявный каст из any во что угодно - это самая большая ошибка TS
Andrey
Но если типы не совпадают оно не скомпилиться же
я у себя вообще бабелем типы срезаю, чтобы проц не гонять просто так а все ошибки онли в иде светятся
Alexander
Глупо использовать any если ты решил использовать тайпскрипт.
Alexander
Какой смысл
Alexander
const n: any = 5; const s: string = n;
Andrey
Глупо использовать any если ты решил использовать тайпскрипт.
когда не знаешь, что тебе придет любой ответ с эндпоинта апи никто не может гарантировать, что там
Alexander
Ну если апи так написано...
Alexander
Ой короче никто ж не запрещает ничего
Alexander
😂Хоть prop types
S
Object.assign({}, state, { articles: state.articles.concat(action.payload) })Как это записать через spread object?
nick
{ ...state, articles: state.articles.concat(action.payload) }
Юрий
ребят, а как вы используете actionTypes? создаете каждый раз константу и в переменную записываете или по обьектам делите?
Victor
ребят, а как вы используете actionTypes? создаете каждый раз константу и в переменную записываете или по обьектам делите?
export const ADDING_PASSENGER = 'ADDING_PASSENGER' export const addingPassenger = createAction(ADDING_PASSENGER) ... dispatch(addingPassenger(ageCategory))
Андрей
Незнаю можно ли писать вакансии сюда, но нам в компанию adv.ru требуются react-разработчики, а также Аналитики (Бизнес и Системные) и UI/UX Дизайнер #вакансия #москва #офис Можно не в штат, а контрактом на 2+ мес. Компания: ADVweb-engineering Комфортный офис в шаговой доступности от Дизайн-завода Flacon (м. Дмитровская); ДМС после испытательного срока; оплата профильных курсов; корпоративное обучение английскому языку прямо в офисе;
Андрей
спасибо, прошу прощения :)
Evgeniy
благодарю
{ ...state, articles: { ...state.articles, ... action.payload } }
Michail
Вопрос тупой, но, если я ипортнул картинку через import img1, нормально она будет здесь работать? Я ее не могу найти в components react dev
Danila
Ето не точно, конечно!
Michail
ok) sps
Андрей