Алексей Соин · zencod.ru
19 subscribers
165 photos
16 videos
4 files
1K links
Статьи по разработке

- frontend
- backend
- server

zencod.ru
Download Telegram
Forwarded from mefody.dev
Satisfies в TypeScript

Адам Ракис на примерах объясняет пользу ключевого слова satisfies в TypeScript.

Если коротко, это что-то вроде assert для типов. Представьте, что у вас есть тип с опциональным полем.


type Item = {
name: string;
description?: string;
};

function insertItems(items: Item[]) {}

insertItems(
backendItems.map(item => {
return {
name: item.item_name,
description_new: item.item_description,
};
})
);


В этом коде есть неприятный баг. TypeScript смотрит на типы и пытается их пересечь. Из-за опциональности поля description ошибки в коде нет с точки зрения типов. Но если дальше массив в рантайме передаётся с клиента на бэкенд, получим, вероятно, ошибку.

Как словить эту ошибку вовремя? Помимо явного указания типов вообще везде, где только можно вписать тип, можно сделать так:


insertItems(
backendItems.map(item => {
return {
name: item.item_name,
description_new: item.item_description,
} satisfies Item;
})
);


Здесь TS проверит реальное соответствие типу и ругнётся на лишнее поле. При этом автовыведение типов всё ещё работает.

Подробнее — по ссылке.

https://frontendmasters.com/blog/satisfies-in-typescript/
Forwarded from CodeCamp
This media is not supported in your browser
VIEW IN TELEGRAM
Тренируем алгоритмы — нашёл прикольный визуальный тренажёр с пошаговым выполнением кода.

Тут 70+ алгоритмов на JavaScript, Java и C++, всё красиво и с наглядно.

Забираем
Forwarded from CodeCamp
Полезно: нашёл для вас хардкорный гайд по Kubernetes. Автор пилил его целых 2 года, пересобрал сотни кластеров и провёл тысячи перезапусков, чтобы излить свою мудрость в тексте.

Что ждёт:

— Полный пошаговый гайд по сборке Kuberentes;
— Удобные alias’ы, функции и обёртки;
— Десятки скриптов, которые реально работают в бою;
— Важные нюансы, о которых обычно молчат туториалы.

Все упаковано в удобную MDX-документацию с фокусом на практику и читаемость.

Ещё и на русском
Ну, погоди! Как я создал свою версию культовой игры: от схемы до корпуса / Хабр
https://habr.com/ru/companies/ruvds/articles/923274/
Вайб-кодинг, это когда два инженера могут создать технический долг как минимум для 50 инженеров.

📱 @dev_notes_ru

#joke
Please open Telegram to view this post
VIEW IN TELEGRAM
Утилитные TS типы для работы с Promise

Примеры типизации сложных кейсов при работе с Promise.all или вложенными Promise.

https://spin.atomicobject.com/better-promise-all/
Forwarded from Мир Linux
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрый совет по Linux

При просмотре файла с помощью less нажмите v, чтобы открыть файл в редакторе по умолчанию прямо на той строке, которую вы сейчас просматриваете.

Удобно для быстрого редактирования без выхода из less. По умолчанию редактором обычно является Vi, даже не Vim.

Хорошая идея задать свой редактор в .bashrc или .zshrc вот так:
export EDITOR=nano  
export VISUAL=$EDITOR


@linuxos_tg
Forwarded from mefody.dev
Дружелюбное введение в SVG

Джош Камю с хорошим туториалом для новичков по основам SVG. На интерактивных демках показывает, как рисовать линии, прямоугольники, круги, эллипсы и полигоны. Заодно объясняет отличие атрибутов width и height от viewBox. И не только.

Опытные пользователи SVG вряд ли найдут для себя что-то новое, но, справедливости ради, среди нас не так уж много тех, кто часто пишет SVG руками.

https://www.joshwcomeau.com/svg/friendly-introduction-to-svg/
Forwarded from FrontEndDev
ES-toolkit

Новая легковесная альтернатива для lodash с поддержкой типов и улучшенной производительностью.

https://es-toolkit.dev/
Forwarded from FrontEndDev
Операторы логического присваивания

Использование короткого синтаксиса для упрощения инициализации переменных с условиями. Виды операторов, примеры, поддержка в браузерах.

https://allthingssmitty.com/2025/07/28/logical-assignment-operators-in-javascript-small-syntax-big-wins/
🛠На сайте zencod.ru пополнение!!!👨‍💻

👩‍💻 Добавил две новые статьи по TypeScript: в одной разберём, что такое открытые union-типы и когда они могут быть полезны, а во второй — как добавить типизацию для Object.keys и Object.entries

Все статьи сайта доступны по ссылке 👆
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Гибкие TypeScript Union-типы с автодополнением

В TypeScript типы, как правило, достаточно точны, что оставляет мало места для неоднозначности. Хотя такая строгость полезна для объектов, при работе с объединениями она может ощущаться ограничивающей. В этой статье мы рассмотрим, как создавать открытые union-типы в TypeScript.

https://zencod.ru/articles/ts-unions-autocomplete/
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Правильная типизация Object.keys и Object.entries в TypeScript

Разберемся, как правильно типизировать Object.keys и Object.entries в TypeScript, чтобы получить точные ключи и значения объекта.

https://zencod.ru/articles/ts-object-keys-entries/
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Мир Linux
Небольшая шпаргалка по расширенным параметрам в Bash

Более подробно про расширенные параметры можно почитать на официальной странице.


PDF-версия в хорошем качестве — в комментариях

@linuxos_tg
Forwarded from FrontEndDev
Пара вещей про href в ссылках, о которых вы, возможно, не догадывались

Неожиданный спектр значений атрибута href — от протоколов mailto:, tel: до ссылок вроде href=".", href="?", data:-URI и медиа-фрагментов с временными метками. Мелочи, которые делают поведение ссылок более гибким и полезным.

https://blog.jim-nielsen.com/2025/href-value-possibilities/
👍1
Понимание CSS corner-shape и сила суперэллипса 🧑‍🎓

В Chrome 139 релизнули CSS corner-shape, и мы сразу изучаем что это такое 👨‍💻

Перевёл статью для тебя 👇
https://habr.com/ru/articles/938886/
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Мир Linux
Наглядное объяснение NAT (Network Address Translation)

@linuxos_tg