Если ты еще не знаешь, меня зовут Айюб и я снимаю видео о frontend разработке.
Канал сфокусирован на то, чтобы дать зрителям фундаментальные знания и понимание технологий, с которыми они работают, нежели какие-то конкретные тактики и фишки.
Так же по мимо RU-vid канала, у меня есть канал в телеграмм: telegram.me/ayub_begimkulov_coding
Я считала, что неплохо знаю typescript, но смотря твои видео уже сделала пару открытий для себя! Я не знала про function type assertion. А в видео про дженерики я узнала, что функцию type guard можно использовать для сужения key (function hasOwn) Благодарю!
У тебя отличный контент, спасибо! Но, кажется, чтобы понять in/out, стоило рассказать про вариантность. in/out явно указывают вариантность. Вариантность это один из механизмов с помощью которого компилятор понимает совместимы типы или нет. Всего 4 вида вариантности. Нас интересуют сейчас 2 из них. 1) ковариантность - если ожидаем родительский класс, то можно присвоить и класс потомок 2) контравариантность - если ожидаем родительский класс, то нельзя присвоить класс потомок. Но можно присвоить класс, который предок родительского Даны классы class Animal { public name = ''; } class Bird extends Animal { public fly() {} } class Crow extends Bird { public caw() {} } const somebody1: Animal = new Animal(); // можно присвоить также new Bird() и new Crow() const somebody2: Bird = new Bird(); // можно присвоить также new Crow() const somebody3: Crow = new Crow(); // сюда больше ничего нельзя присвоить кроме Crow Это примеры ковариантности. В ts везде кроме параметров функций используется ковариантность. В параметрах функций контравариантность. Пример контравариантности: type F = (s: Bird) => boolean const someFunction1: F = (s: Animal) => true // ok const someFunction2: F = (s: Bird) => true // ok const someFunction3: F = (s: Crow) => true // ERROR! Типы не совместимы На первый взгляд это может показаться странным. Но пример ниже все поясняет. const array = [new Bird(), new Bird(), new Bird()]; const filter = (predicate: F) => { return array.filter(predicate); }; const someFunction4 = (s: Crow) => { s.caw(); // но ведь в последней строке мы планируем проитерироваться по Bird(), у которых нет метода caw() }; filter(someFunction4); // Error Возвращаясь к in/out Getter ковариантен относительно T, поэтому out модификатор. Setter контравариантен относительно T, поэтому in модификатор.
Если кого-то заинтересует подробнее почему примеры из in/out совместимы, могу посоветовать прочитать про совместимость типов на основе вариантности (Ковариантность, Контрвариантность)
Кто смотрит, обратите внимание на версии пакетов. Разработчики @ts-es/utils решили отказаться от commonjs, что ведёт к какой-то запутанной фигне, что в рот его шатать, так как это добавляет конфликты пакетов в проекте
Думал может быть над тем, что бы попробовать закрыть проблему в каком то опенсорс проекте? Показать как находишь решение, твои мысли и т д. Есть проект GrapeJs. Там есть проблема с сортером при 2000 елементах.
Привет, спасибо за контент, в ру сегменте очень мало темы касаемо деплоя приложения фронтенд / бекенд. Возможно, у тебя есть в этом опыт, как полноценно задеплоить на vps Full stack приложение, подключить различные метрики для отслеживание состояния сервера / бд и т.д. Особенно отмечу, что мало контента касаемо деплоя без простоя.
Темы для уроков: 1. Сделать прототип своего js SPA фреймворка. Возможные фичи: Virtual Dom, Роутинг, Реактивность, Свой класс HTTP 2. Продемонстрировать как можно своими руками сделать SSR с помощью js и nodeJS 3. Прикрутить к фреймворку из 1-го пункта поддержку SSR 4. На ютубе мало контента по тестированию. Написание тестов на компоненты, написание тестов на хуки, тестирование user кейсов, любой контент будет в тему) 5. Написание своей ui библиотеки для react js и next js. Как надо разбить код в проекте, чтобы было 2 npm пакета для react и next? Да, почти все темы достаточно сложные, но ты же не будешь забывать про ребят, которые подписались на тебя как раз из-за сложных тем, да?)))
Я тоже выскажу своё мнение). Всегда очень хотелось тебя досматривать и понять. Но мне кажется твой говор однотонный и беглый. Без эмоций наверное. Я тупо засыпал хотя старался досматривать и понять.
С возвращением) Идея каким нить фуллстек приложение была бы классной. С актуальными технологиями…тс, некст, экспресс, базу данных, файрбейс…можно было бы еще тесты базово , юнит или jest. Или что то из фулстек тоже но в мобилке, реакт натив был бы кстати очень)
Почему то многие спикеры долго идут к тому, что целевому зрителю не нужны сложные конструкции и сложным языком. Тут сидят те, кто хочет впитать инфу, полезную и понятную.