Все потоки
Поиск
Написать публикацию
Обновить
31.96

TypeScript *

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

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

Валидация формы с помощью AJV, Vue.js и TypeScript

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

Валидация форм является важной частью фронтенд-разработки, которая помогает улучшить пользовательский опыт и предотвратить ошибки при отправке данных на сервер. В этой статье мы рассмотрим, как использовать библиотеку AJV совместно с Vue.js и TypeScript для создания мощной системы валидации формы.

Читать далее

Функция TypeScript 5.3, о которой вам не рассказали

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

20 ноября команда TypeScript выпустила TS 5.3.

Как обычно, я просканировал сообщение об анонсе, но быстро заметил кое-что интересное.

Одно из самых важных изменений в TypeScript 5.3 не было упомянуто в примечаниях к релизу.

Читать далее

Vue state management: Pinia stores или composables с глобальными рефами?

Время на прочтение2 мин
Количество просмотров8.3K

На Reddit прошла интересная дискуссия с 25К+ просмотрами по вопросу предпочтений разработчиков при необходимости управлять глобальным состоянием во Vue 3. Ниже её итоги.

Читать далее

Как автоматизировать использование дизайн токенов с помощью Stylelint и PostCSS

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

Привет, Хабр!

Меня зовут Саша и вот уже 7 лет я работаю фулстек разработчиком и пишу на C# и TypeScript/React.

Сегодня я хотел бы поделиться своим небольшим успехом в автоматизации. В какой-то момент я понял, что во время код ревью я указываю разработчикам на одни и те же ошибки. Но, что ещё хуже, я сам время от времени допускаю эти ошибки. Сегодня хочу рассказать об одной из таких проблем, которую я решил с помощью PostCSS + Stylelint, и о том, как я это сделал.

Статья будет полезна для разработчиков, которые уже используют или собираются использовать дизайн токены.

Начнём!

История создания Оптимизатора для ПК: Nuxt.js, Electron и C++ в Одном Проекте

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

Как я проектировал свой самый большой проект, сложности с которыми я столкнулся. Фишки и неочевидные моменты при разработке.

Читать далее

Typescript: принцип подстановки функций

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

По аналогии с принципом LSP из ООП, при работе с функциями в Typescript стоит придерживаться следующего принципа:

Принимая колбэк с меньшим числом аргументов, оборачивайте его, прежде, чем передавать его далее в качестве колбэка с большим числом аргументов.

Почему это так?

Как я сделал проект для себя и получил приз от Telegram

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

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

Читать далее

TypeScript: infer и conditional types. Продвинутый TS на примерах

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

Разбираемся, что же такое conditional types и как написать свои утилиты, такие как ReturnType, InstanceType, NonNullable и др., при помощи ключевых слов infer и extends.

Читать далее

TypeScript: операции Union и Intersection в свете теории множеств

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

Недавно мне задали вопрос «почему пересечение в TS работает не как в теории множеств, а совсем наоборот?»

Озадачился, задумался и стал разбираться, как согласуются, и согласуются ли вообще операции «объединение» и «пересечение» в TypeScript и в теории множеств? И действительно ли пересечение в TS работает прямо противоположно?

Читать далее

Пишем файловую систему для работы с изображениями на TypeScript

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

В этой статье мы займемся созданием файловой системы на NodeJS + TypeScript в пользовательском пространстве, которая будет управлять изображениями пользователей. Она будет преобразовывать их в различные форматы, изменяя размеры и предоставляя уникальные бинарные данные изображения при каждом чтении — ведя себя при этом как стандартная файловая система.

Если вам интересна данная тема, добро пожаловать под кат.

Читать далее

Decky Notifications: как переизобрести KDE Connect и перенести уведомления в Steam Deck

Время на прочтение12 мин
Количество просмотров4.4K

Недавно в мои руки попала портативная игровая консоль Steam Deck. Замечательное устройство, которое полностью поглощает внимание. В этом я вскоре нашел минус: телефон генерирует уведомления и приходится откладывать приставку, чтобы посмотреть сообщение.

Хочу играть и не проверять телефон, но при этом боюсь пропустить что-то важное. И я нашел способ решение этой задачи. В этой статье расскажу, как мне пришлось полностью перебрать протокол KDE Connect, чтобы написать плагин, который переносит уведомления в Steam Deck. Подробности под катом!
Читать дальше →

TabNine: проверка на практике функционала и новая реальность разработки с ИИ

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

Привет, Хабр! На связи команда Work Solutions. Мы попросили нашего фронтенд-разработчика Александра Шапорова поделиться опытом работы с функционалом AI ассистента TabNine на реальном проекте. Саша расскажет, ускоряет ли утилита разработку, повышает ли качество кода и делает ли процесс программирования более продуктивным. А также объяснит, почему ассистенты на базе искусственного интеллекта не могут стать незаменимыми помощниками разработчиков в написании кода, и почему ИИ в ближайшее время не сможет полностью заменить программистов.

В мире кода и алгоритмов все чаще можно услышать разговоры о том, что ИИ скоро заменит программистов. Слова «искусственный интеллект» начинают обрастать мифами и легендами. Но давайте оставим футуристические сценарии. Сосредоточимся на том, что происходит сегодня. 

Армия ассистентов и утилит на базе искусственного интеллекта пополняется с каждым днем. Готова поддержать разработчиков в их нелегком деле. Среди ассистентов также появился TabNine. Разберемся, может ли этот «джинн в лампе» стать незаменимым помощником разработчиков в создании кода. 

В этой статье проанализируем примеры кода, сгенерированные AI ассистентом TabNine. Наше исследование не простая теория. Проверим результаты в контексте реального проекта и выясним, насколько код ИИ рабочий. Ответим на вопрос, можно ли использовать ассистента на реальных проектах. Расскажем о своих впечатлениях и результатах. 

Читать далее

Динамическое создание компонентов Angular на лету

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

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

Углубиться

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

Неочевидные моменты TypeScript и способы их решения

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

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

Если вам будет удобно сразу же проверять каждый пример, читая статью, можно это делать в редакторе. Он удобен тем, что версию TypeScript в нем можно переключать.

Читать далее

Typescript: лучшие практики

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

Привет👋 В последние годы среди фронтенд разработчиков Typescript используется практически везде по умолчанию, начиная небольшими пет-проектами и заканчивая огромнейшими веб-приложениями. Однако, до сих пор на некоторых проектах можно встретить кучу any и Function. Давайте разберемся используете ли вы этот невероятно мощный инструмент правильно?

Читать далее

Улучшаем производительность с RxJS

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

Всем привет! Сегодня я хочу поделиться приемами улучшения производительности фронтенда путем оптимизации RxJS стримов.

Читать далее

Webpack vs esbuild — уже можно использовать в production?

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

Периодически я пробую разные инструменты, и если они стабильно покрывают все необходимые сценарии - включаю в свою экосистему для коммерческих проектов. С третьего подхода за последние 3 года esbuild, наконец, приблизился по функционалу к Webpack. В статье привожу проблемы, с которыми я столкнулся при миграции, и пути их решения.

Читать далее

Встречаем Angular 17

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

В прошлом месяце исполнилось 13 лет с момента появления "красного щита" Angular. AngularJS стал отправной точкой для новой волны JavaScript-фреймворков, появившихся для поддержки растущей потребности в богатом веб-опыте. Сегодня с новым внешним видом и набором перспективных функций мы ведем всех в будущее с версией 17, устанавливая новые стандарты производительности и удобства для разработчиков.

Читать далее

Невероятно гибкие и переиспользуемые UI контролы для Angular

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

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

Читать далее

Redux-toolkit и переиспользование кода

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

Привет, Хабр!

Каждый разработчик стремиться соблюсти DRY принцип, но переиспользование кода в redux-toolkit имеет свои особенности и у кого-то могут возникнуть трудности, поэтому в данной статье описаны несколько вариантов переиспользования кода при создании слайсов через createSlice, начнем с самого очевидного, и постараемся создать гибкое и расширяемое решение, и конечно же не забудем typescript.

createSlice