Как стать автором
Обновить
41.35

TypeScript *

Cтрого типизированная надстройка для JavaScript

Сначала показывать
Порог рейтинга
Уровень сложности

React + Styled Components — идеальная анимация. Параметризованная анимация

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 4.7K

В данной статье продемонстрирован способ реализации “параметризованной” css анимации React компонента с помощью styled components. Параметризованная потому что css анимация описывается через параметры, которые динамически рассчитываются на основе пропсов и состояний компонента при его рендеринге.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 6

TypeScript 5.2: Новое ключевое слово: 'using'

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 5.4K

В TypeScript 5.2 появится новое ключевое слово 'using', которое можно будет использовать для утилизации чего-либо с помощью функции Symbol.dispose, когда оно покидает область видимости.

Читать далее
Всего голосов 9: ↑2 и ↓7 -5
Комментарии 5

Web API для Angular

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 4.5K

Веб — богатая экосистема с массой мощных API, которая только пополняется. В нашем распоряжении уже знакомые инструменты — Canvas или Intersection Observer, но в 2023 мы также имеем Web MIDI API, Speech Recognition и даже такие экзотические штуки, как геймпады и VR прямо в браузере. Естественно, эти API сложно использовать в Angular из-за разницы парадигм нативного JavaScript и декларативного Angular. Вот тут и появляемся мы!

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 0

Сквозь время – ускоряем автотесты

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 3.6K

В идеальном мире автотесты должны проходить быстро, чтобы их хотелось запускать как локально, так и в CI. Но почему в большинстве проектов запуск тестов отнимает критически много времени?

– Зачастую причиной является неправильная работа с асинхронными операциями. В статье разберемся, как Jest помогает писать молниеносные тесты, и рассмотрим ключевые сценарии.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 1

Истории

Явное управление ресурсами: пробуем новую фичу JavaScript и TypeScript

Уровень сложности Сложный
Время на прочтение 13 мин
Количество просмотров 17K

Одной из самых интересных грядущих новинок JavaScript и TypeScript для меня является явное управление ресурсами. Новый синтаксис using foobar = … реализует идиому RAII, позволяя писать намного менее многословный код, управляющий какими-либо ресурсами.

В этой статье я хочу на примерах разобрать эту фичу — в том виде, в котором она сейчас доступна в TypeScript 5.2.0-beta с полифиллом disposablestack. Я рассмотрю синхронные и асинхронные ресурсы, DisposableStack/AsyncDisposableStack, а также приведу пример неочевидного бага, в который попался я сам. По пути я также коснусь нескольких других нововведений Node.js, про которые, возможно, ещё знают не все. Весь код доступен в репозитории.
Читать дальше →
Всего голосов 65: ↑65 и ↓0 +65
Комментарии 6

Вывод типов в TypeScript. Неизменяемый массив конкретных строковых значений

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 5.7K

Решим реальную практическую задачу, с которой мне пришлось столкнуться на моем проекте React/TypeScript.

Задача

У нас есть массив конкретных строковых значений, таких как "first", "second", "third", "fourth" и "fifth". Необходимо отобразить их на странице, т.е как-то использовать, а также убедиться, чтобы эти данные были строго типизированы и TypeScript нам выдавал всплывающие подсказки при их использовании в коде.

Читать далее
Всего голосов 22: ↑19 и ↓3 +16
Комментарии 25

Cocos Creator — отличная альтернатива Unity, о которой вы, возможно, ещё не слышали

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 24K

Если ты решил начать делать игры под Яндекс Игры, но Unity и другие движки тебя не устраивают — билды много весят, долгие загрузки и другие проблемы — то эта статья для тебя.

Читать далее
Всего голосов 32: ↑27 и ↓5 +22
Комментарии 48

Viem & Wagmi — новая замена ethers

Уровень сложности Сложный
Время на прочтение 12 мин
Количество просмотров 3.5K

Привет! Сегодня мы рассмотрим относительно новую библиотеку для интеграции с web3 - viem. Мы постараемся понять, способна ли эта библиотека заменить ethers и какие преимущества она предлагает.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 2

Сервис для обнаружения типа устройства пользователя на TypeScript и Vue 3

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 3.2K

Так-с, уважаемые читатели, всех радостно приветствую! Это небольшая статейка как раз для тех людей, которые хотят по быстрому вот такой функционал:

обнаруживать какой тип взаимодействия с веб приложением у пользователя: touchscreen, мышка, либо же и то, и другое одновременно

обнаруживать какая ориентация на данный момент у пользователя

обнаруживать какой тип устройства имеет пользователь: desktop, tab, phone

Звучит, конечно, не сложно, но для этого нужно собирать своего трансформера с разных форумов, я же предлагаю свое решение в готовом и компактном виде :)

Читать статью
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 11

React Content Elements

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 2.6K

Примечание: авторский перевод статьи Web Content Elements

В HTML разработке мы используем тег в качестве дескриминатора - тег определяет элемент. Мы используем классы, чтобы применять стили к HTML элементам. Разработчик создает структуру и описывает стили руководствуясь правилами конкретного проекта, своим опытом и общепринятыми рекомендациями.

В результате мы получаем проекты состоящие из длинного списка кастомных решений в моменте принятых разработчиком лично, либо в составе команды, например после код ревью.

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

Web Content Elements(WCE) - это концепция, шаблон проектирования, который позволяет описать любые решения подобного рода линейно и однообразно.

Согласно WCE, тег - это переменная для генерации синтаксической структуры элемента разметки.

Основная идея паттерна заключается в группировке элементов по роли, которую они представляют на странице.

💡 Элементы сгруппированы по их ролям на странице, а не тегам.

Основные роли:

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 4

Мультибрендинг сайта на Angular

Уровень сложности Средний
Время на прочтение 18 мин
Количество просмотров 2.4K

В последнее время все больше компаний сталкиваются с необходимостью создания нескольких брендов на одном сайте или приложении. Такая задача может быть связана с различными целевыми аудиториями пользователей, регионами или продуктами. Реализация мультибрендинга может быть непростой задачей, особенно если у вас уже есть готовый проект. 

В этой статье я расскажу, как на проекте с Angular добавить несколько брендов, как добавить разную для них логику, о преимуществах NX для этой задачи и важности архитектуры. 

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

Читать далее
Всего голосов 7: ↑4 и ↓3 +1
Комментарии 4

Nx Generator: имба или не стоит разбираться?

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 3.7K

Nx Generator: имба или не стоит разбираться?

Всем привет, меня зовут Дима, я angular-разработчик из департамента среднего и малого бизнеса в Тинькофф. Недавно мой коллега рассказал, почему мы выбрали Nx, а я расскажу про самый мощный инструмент Nx — Nx Generator.

Покажу, что нужно установить для запуска генераторов, и объясню, как писать собственные генераторы и создавать с ними шаблонные файлы. А еще рассмотрим генераторы из коробки от Nx. Предлагаю начинать.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 2

Angular получил новый синтаксис шаблонов

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 8K

Новый синтаксис шаблонов, встроенное управление потоком данных и прощание с структурными директивами? В последние годы не так много менялось. Angular был стабильным для некоторых разработчиков и застойным для других. Теперь он движется вперед со сверхсветовой скоростью. Но куда именно он направляется?

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 10

Ближайшие события

PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн
Weekend Offer в AliExpress
Дата 20 – 21 апреля
Время 10:00 – 20:00
Место
Онлайн

Yet another введение в fp-ts. Часть 2. Моноиды и полугруппы

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 5.3K

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

Сейчас я хочу пролить свет на два наводящих жуть на неподготовленного читателя слова: моноиды и полугруппы. Это математические понятия родом из общей алгебры. На самом деле всё не так уж и страшно. Если совсем упрощать, то оба термина относятся к объединению элементов множества. Я помогу разобраться с их формальными определениями, а также на практических примерах покажу, как и зачем их использовать.

Читать далее
Всего голосов 39: ↑38 и ↓1 +37
Комментарии 13

Оптимизация Apollo-client

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 1.8K

Что описывается: Apollo-client — популярная библиотека для работы с GraphQL. Библиотека призвана ускорить разработку и оптимизировать приложение.

Задача статьи: Описать возможные решения и проблемы оптимизации приложения в части apollo-client.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 3

Объединение микрофронтов на Nx в один проект

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 2.6K

Если вы, как и я, заинтересовались микрофронтами и пробуете развернуть проект на Nx, то возможно, у вас встанет вопрос, как в итоге объединить несколько своих микрофронтов в общий проект. По крайней мере, те статьи, которые я находил по этой теме, рассказывали про то, как создать в Nx несколько проектов (в т.ч. на разных фреймворках), как создать к ним компоненты и либы, и на этом всё заканчивалось. Разобравшись, решил оставить инструкцию для других.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 5

Новое слово в TypeScript 5.2

Уровень сложности Средний
Время на прочтение 2 мин
Количество просмотров 12K

Привет! Представляю вашему вниманию перевод статьи Matt Pocock.
Источник

TypeScript 5.2 представит новое ключевое слово - 'using', которое можно использовать, чтобы избавиться от чего угодно с помощью функции Symbol.dispose, при покидании области видимости.

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 9

Неравный бой — Tinkoff эквайринг. Рекуррентные платежи

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 7.7K

Цель данной статьи:

1. Помочь разработчикам в интеграции

2. Привлечь внимание команды Tinkoff на проблемы связанные с эксплуатацией их API

Читать далее
Всего голосов 16: ↑14 и ↓2 +12
Комментарии 15

Zod: Типизация и валидация Вашего .env (Vite + React и не только)

Уровень сложности Сложный
Время на прочтение 15 мин
Количество просмотров 7.9K

Нередко в проектах необходимо заводить переменные окружения (environment variables). Существует много способов сделать это. Например, указать переменную "inline", как MY_VAR="my value" node index.js или обозначить источник командой source. Некоторые фреймворки имеют даже целые отдельные пакеты для формирования переменных окружения (прим. nest.js). Но чаще всего за годы работы в сфере фронтенд-разработки мне приходилось работать со способом с содержанием .env файлов в проекте, которые имеют простейший синтаксис вида KEY=VALUE.

Проблема в том, что использование env-переменных не гарантирует нам наличие значения и не дает понимание о его типе данных.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 8

React: как сделать динамический суффикс в <input />, который будет двигаться вместе с набранным текстом

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 6.8K

В этой статье вы узнаете как с помощью react можно сделать input с двигающимся суффиксом, который идет сразу после значения ввода

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 10