Frontend Разработка | JavaScript & Верстка сайтов. HTML, CSS и React. Уроки для Фронтенд Developer. JS, Vue и Web технологии. IT Карьера, Курсы и Coding.
Frontend Разработка | JavaScript & Верстка сайтов. HTML, CSS и React. Уроки для Фронтенд Developer. JS, Vue и Web технологии. IT Карьера, Курсы и Coding.
1 488 подписчиков · @frontend_1
К каналу →
Перестаньте пихать всё в useEffect. Серьезно. Вижу это на каждом код-ревью. Джуны (и иногда уставшие мидлы) используют useEffect для синхронизации стейта. Это выстрел себе в ногу.…
Читать далее →
2 894
Знаете ли вы, что можно изменить метод формы в HTML-форме, указав атрибут formMethod на кнопке? 👉 @frontend_1
Читать далее →
2 874

🛡 TypeScript: Почему satisfies круче обычного объявления типа?

🛡 TypeScript: Почему satisfies круче обычного объявления типа?

Многие по привычке пишут так: const config: Config = { ... }.
Это работает для валидации, но у этого подхода есть минус - Type Widening (расширение типов). Вы теряете точность выведенного типа в угоду соответствию интерфейсу.

Начиная с TS 4.9, оператор satisfies решает эту проблему. Он проверяет, что объект соответствует типу, но сохраняет его точную структуру.

В чем разница?

❌ Классический подход (потеря точности):

type Routes = Record<string, string | string[]>;

// Мы явно указали тип Routes
const nav: Routes = {
home: "/",
admin: ["/users", "/posts"]
};

// TS думает, что nav.home — это 'string | string[]'
// ОШИБКА: Property 'toUpperCase' does not exist on type 'string | string[]'
nav.home.toUpperCase();

✅ Используем satisfies (сохраняем контекст):

const nav = {
home: "/",
admin: ["/users", "/posts"]
} satisfies Routes;

// Теперь TS знает:
// 1. nav соответствует Routes (опечатки не пропустит)
// 2. nav.home — это конкретно string
// 3. nav.admin — это конкретно string[]

// РАБОТАЕТ!
nav.home.toUpperCase();
nav.admin.map(path => path);

Когда использовать?
Всегда, когда вы хотите проверить соответствие контракту (конфиги, темы, палитры цветов), но при этом хотите продолжать работать с конкретными значениями этого объекта, а не с его общим интерфейсом.

👉 @frontend_1
🎨 CSS :has() - это легальный чит-код в верстке Мы привыкли называть :has() «селектором родителя», но это определение сильно преуменьшает его мощь. Это инструмент, который позволяе…
Читать далее →
2 924
Советы по HTML 💡 Знаете ли вы, что с помощью элемента HTML <dialog> можно легко создать модал? 👉 @frontend_1
Читать далее →
2 894
Другие главы канала «Frontend Разработка | JavaScript & Верстка сайтов. HTML, CSS и React. Уроки для Фронтенд Developer. JS, Vue и Web технологии. IT Карьера, Курсы и Coding.»
Выберите главу, чтобы продолжить чтение
Все посты →
Глава от 27.05.2026
Slice vs. Splice в JavaScript 👉 @frontend_1
👁 395 просмотров
Глава от 27.05.2026
Используйте сокращение CSS flex flow, чтобы объединить свойства flex direction и…
👁 463 просмотров
Глава от 26.05.2026
В России можно посещать IT-мероприятия хоть каждый день: как оффлайн, так и онла…
👁 392 просмотров
Глава от 25.05.2026
CSS Grid 👉 @frontend_1
👁 417 просмотров
Глава от 25.05.2026
Работа аналитика - уже не только про цифры! Это про умение принимать решения бы…
👁 406 просмотров
Глава от 25.05.2026
Пример кастомных курсоров на CSS 🧑‍💻🚀 👉 @frontend_1
👁 476 просмотров
Глава от 24.05.2026
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 ht…
👁 485 просмотров
Глава от 23.05.2026
💡HTML-элемент <meter> в действии 👉 @frontend_1
👁 561 просмотров
Глава от 23.05.2026
Работа аналитика - уже не только про цифры! Это про умение принимать решения бы…
👁 588 просмотров

Популярные посты канала «Frontend Разработка | JavaScript & Верстка сайтов. HTML, CSS и React. Уроки для Фронтенд Developer. JS, Vue и Web технологии. IT Карьера, Курсы и Coding.»

🎨 CSS :has() - это легальный чит-код в верстке Мы привыкли называть :has() «селектором родителя», но это определение сильно преуменьшает ег…
👁 2 924 просмотров
any - это ложь, которую вы говорите сами себе Давайте честно: когда у вас горят дедлайны, а TypeScript ругается на несовпадение типов, рука…
👁 2 911 просмотров
Советы по HTML 💡 Знаете ли вы, что с помощью элемента HTML <dialog> можно легко создать модал? 👉 @frontend_1
👁 2 894 просмотров
Перестаньте пихать всё в useEffect. Серьезно. Вижу это на каждом код-ревью. Джуны (и иногда уставшие мидлы) используют useEffect для синхро…
👁 2 894 просмотров
🛑 Хватит проверять isMounted в useEffect Вы наверняка видели (или писали) такой код, чтобы избежать ошибки "Can't perform a React state upd…
👁 2 881 просмотров
Идеальные заголовки без JS: text-wrap: balance Дизайнеры ненавидят «висячие» слова. Когда длинный заголовок переносится так, что на второй …
👁 2 880 просмотров
Знаете ли вы, что можно изменить метод формы в HTML-форме, указав атрибут formMethod на кнопке? 👉 @frontend_1
👁 2 874 просмотров
Советы по Javascript 💡 👉 @frontend_1
👁 2 873 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 2 855 просмотров
🏗 Забудьте про z-index: 9999: Нативный <dialog> Мы годами писали сложные велосипеды для модальных окон или тянули тяжелые библиотеки. Главн…
👁 2 849 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 2 838 просмотров
📐 Перестаньте верстать под экран: @container Мы привыкли делать адаптив через @media, опираясь на размер экрана. Но это ломает компонентный…
👁 2 838 просмотров
📦 Нативная группировка: Object.groupBy Сколько раз в жизни вы писали reduce для группировки массива объектов по какому-то полю? Или тянули …
👁 2 829 просмотров
Используйте свойство columns, чтобы разделить статью на отзывчивые колонки 🚀. 👉 @frontend_1
👁 2 825 просмотров
🤝 Promise.withResolvers() - конец старого костыля Если вы работали со сложными асинхронными потоками, вам наверняка приходилось «вытаскиват…
👁 2 809 просмотров
🚫 Перестаньте использовать pointer-events: none для блокировки UI Когда вы открываете Side-menu (шторку), показываете лоадер или переключае…
👁 2 809 просмотров
Почему z-index: 9999 не работает (и как перестать страдать) Знакомая ситуация? У вас есть модалка, которая почему-то перекрывается хедером.…
👁 2 791 просмотров
🗣 Хватит склеивать массивы через .join(', ') Каждый фронтендер хотя бы раз писал функцию, которая превращает массив ['A', 'B', 'C'] в строк…
👁 2 787 просмотров
Cовет💡 Быстрый и простой совет для вложенных радиусов: ваши углы будут выглядеть намного лучше, если вы установите внешний радиус на сумму …
👁 2 778 просмотров
Node получил возможность запускать файлы TypeScript напрямую! 👉 @frontend_1
👁 2 774 просмотров

Связанные темы в других каналах

Каналы из той же тематики, где часто появляются близкие сюжеты
Вся тема →
@matematik_andrei_channel
Математик Андрей
Основатель онлайн-школы «Точка Знаний» В канале: — короткие видео по темам 1-11 классов — разбор задач ВПР/ОГЭ/ЕГЭ — применение математики в жизни Получить консульта…
👥 218 376 · -299/7д
@obr_mo
Образование Подмосковья
Свежие новости об образовании в Московской области: школы, колледжи, детские сады, вузы. Узнавайте первыми о реформах, олимпиадах, ЕГЭ, строительстве новых учреждений и у…
👥 80 933 · +4 408/7д
@Moscow_school
Московское образование
Успех начинается здесь! Приложение «ЗОЖ с МЭШиком» https://max.ru/meshik_app_bot Для СМИ: press-donm@mos.ru Сайт: mosobr.shkolamoskva.ru ВК: vk.com/educationdep ТГ: htt…
👥 68 196 · +36/7д
@minprosrf
Минпросвещения России
Официальный канал Министерства просвещения России. Всё об образовании для родителей, педагогов и учащихся. Сайт edu.gov.ru ВКонтакте vk.com/minprosvet Однокл
👥 54 105 · +442/7д
@Lingvaa
Лингвист | Русский язык Образование
Канал №1 для тех, кто звонИт, а не звОнит! По рекламе: https://clck.ru/3R7DoR Биржа: https://telega.in/c/Lingvaa
👥 53 567 · -114/7д
@iqkot
Образование
Образовательное сообщество, где знания становятся доступными каждому. Мы собираем и структурируем материалы по саморазвитию, обучению и смежным темам. Здесь вы найдете ле…
👥 48 386 · -4 040/7д
🏷 Темы и теги
#frontend #javascript #react #vue #html5 #css3 #Образование
📋 О канале Frontend Разработка | JavaScript & Верстка сайтов. HTML, CSS и React. Уроки для Фронтенд Developer. JS, Vue и Web технологии. IT Карьера, Курсы и Coding.
Твой путь в веб-разработку. Основы: HTML5, CSS3, Flexbox, Grid. Адаптивная верстка (Responsive) и макеты из Figma. Глубокий JavaScript (ES6+), DOM и события. Фреймворки: React, Vue.js, Angular. Препроцессоры SCSS и стилизация Tailwind. Работа с Git и GitHub. Как пройти собеседование на Junior Frontend Developer. Задачи, тесты и создание портфолио с нуля.
🔍 Архив всех постов Макс
Поиск по 7,254,075 постам из 199,571 каналов
Попробовать за 1 ₽ →
Удалить пост или канал с МАКСОТЕКИ
Заявка подтверждается через бота Макс: нужно быть администратором канала и добавить бота МАКСОТЕКИ в администраторы. После проверки канал или конкретный пост скрывается с сайта.
📊 Аналитика канала «Frontend Разработка | JavaScript & Верстка сайтов. HTML, CSS и React. Уроки для Фронтенд Developer. JS, Vue и Web технологии. IT Карьера, Курсы и Coding.» ➡️ Перейти в канал Макс
Заявка в МАКСОТЕКА
Добавьте свой канал в каталог
Зарегистрируйтесь в личном кабинете и добавьте канал за пару кликов.
Перейти в личный кабинет →

Бесплатная регистрация, быстрая модерация.