Old but gold: Сервис для обнаружения типа устройства пользователя на TypeScript и Vue 3
Нашли для вас интересный туториал, в котором рассказывается, как создать сервис способный узнавать:
— тип взаимодействия с веб-приложением;
— ориентацию экрана на данный момент;
— тип устройства: desktop, tab, phone.
#typescript #vue3
Нашли для вас интересный туториал, в котором рассказывается, как создать сервис способный узнавать:
— тип взаимодействия с веб-приложением;
— ориентацию экрана на данный момент;
— тип устройства: desktop, tab, phone.
#typescript #vue3
Лучший способ создания паттерна проектирования Singleton в JavaScript и TypeScript
Паттерн проектирования Singleton гарантирует, что у класса есть только один экземпляр и предоставляет глобальную точку доступа к этому экземпляру. Этот паттерн полезен, когда необходим именно один объект для координации действий в системе.
В этой статье собраны эффективные методы реализации паттерна Singleton в JavaScript и TypeScript.
#паттерны #javascript #typescript
Паттерн проектирования Singleton гарантирует, что у класса есть только один экземпляр и предоставляет глобальную точку доступа к этому экземпляру. Этот паттерн полезен, когда необходим именно один объект для координации действий в системе.
В этой статье собраны эффективные методы реализации паттерна Singleton в JavaScript и TypeScript.
#паттерны #javascript #typescript
👍1👎1
Performance и оптимизация TypeScript-типов в больших проектах
Большие TypeScript-проекты на практике часто представляют собой монорепозитории, в которых может быть сотни и даже тысячи модулей, интерфейсов и типов. На ранних этапах роста всё кажется вполне управляемым, но в определённый момент мы начинаем замечать, что время компиляции становится слишком большим, а IDE начинает работать ощутимо медленнее.
В этой статье вы узнаете, почему TypeScript захлёбывается в крупных проектах, какие подходы и практики помогут оптимизировать типы и как проводить диагностику узких мест в процессах компиляции и разработки.
#typescript
Большие TypeScript-проекты на практике часто представляют собой монорепозитории, в которых может быть сотни и даже тысячи модулей, интерфейсов и типов. На ранних этапах роста всё кажется вполне управляемым, но в определённый момент мы начинаем замечать, что время компиляции становится слишком большим, а IDE начинает работать ощутимо медленнее.
В этой статье вы узнаете, почему TypeScript захлёбывается в крупных проектах, какие подходы и практики помогут оптимизировать типы и как проводить диагностику узких мест в процессах компиляции и разработки.
#typescript
🔥6👍2😁1
Пишем свой движок для Flexbox-вёрстки
Предлагаем вам написать свой движок для компоновки элементов с нуля на TypeScript. В результате у вас получится аналог Yoga или Stretch, который вы сможете использовать в своих проектах.
Если заинтересовались, то давайте без лишних слов приступим к делу. Подробности по ссылке:
https://tchayen.com/how-to-write-a-flexbox-layout-engine
#фронтенд #typescript #css
Предлагаем вам написать свой движок для компоновки элементов с нуля на TypeScript. В результате у вас получится аналог Yoga или Stretch, который вы сможете использовать в своих проектах.
Если заинтересовались, то давайте без лишних слов приступим к делу. Подробности по ссылке:
https://tchayen.com/how-to-write-a-flexbox-layout-engine
#фронтенд #typescript #css
👍7
Media is too big
VIEW IN TELEGRAM
Doom запустили на типах TypeScript
Энтузиасты взяли и запилили полноценный рантайм для WebAssembly, но вся магия — на типах TypeScript. И да, они запустили на этой штуке Doom. Как им это удалось, они рассказали в видео.
Кармак дуреет с этой прикормки!
#typescript #ненормальноепрограммирование
Энтузиасты взяли и запилили полноценный рантайм для WebAssembly, но вся магия — на типах TypeScript. И да, они запустили на этой штуке Doom. Как им это удалось, они рассказали в видео.
Кармак дуреет с этой прикормки!
#typescript #ненормальноепрограммирование
🤯12🔥4
Microsoft ускорила TypeScript в 10 раз
В TypeScript радикальные изменения — Microsoft решила сменить язык компилятора, перейдя на Go. Ещё не все работы закончены, но уже сейчас время компиляции сократилось в среднем в 10 раз!
Пока что TS будет работать на JavaScript. Полный переход состоится на версии 7.0, когда будут решены все вопросы с совместимостью версий. Но первую нативную версию обещают уже в середине 2025 года.
Что думаете? Стоит оно того?
#новости #typescript
В TypeScript радикальные изменения — Microsoft решила сменить язык компилятора, перейдя на Go. Ещё не все работы закончены, но уже сейчас время компиляции сократилось в среднем в 10 раз!
Пока что TS будет работать на JavaScript. Полный переход состоится на версии 7.0, когда будут решены все вопросы с совместимостью версий. Но первую нативную версию обещают уже в середине 2025 года.
Что думаете? Стоит оно того?
#новости #typescript
🔥33👎5🤔4❤3💩2
Интерактивный гайд по CRDT
Благодаря CRDT можно легко создавать приложения с совместным редактированием, такие как Google Docs, но без необходимости подключаться к серверу.
В этой серии статей мы узнаем, что такое CRDT. Затем напишем простой редактор, объединим его с более сложными структурами данных и, наконец, применим то, что мы выучили, чтобы создать совместный редактор, похожий на Paint в онлайне.
https://jakelazaroff.com/words/an-interactive-intro-to-crdts/
#typescript #crdt
Благодаря CRDT можно легко создавать приложения с совместным редактированием, такие как Google Docs, но без необходимости подключаться к серверу.
В этой серии статей мы узнаем, что такое CRDT. Затем напишем простой редактор, объединим его с более сложными структурами данных и, наконец, применим то, что мы выучили, чтобы создать совместный редактор, похожий на Paint в онлайне.
https://jakelazaroff.com/words/an-interactive-intro-to-crdts/
#typescript #crdt
🔥6👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Old But Gold: создаём полноценную браузерную игру на TypeScript
Делимся 2-часовым гайдом по созданию 2D-платформера на TypeScript: https://www.youtube.com/watch?v=R6WvJOiX99s
#typescript #gamedev
Делимся 2-часовым гайдом по созданию 2D-платформера на TypeScript: https://www.youtube.com/watch?v=R6WvJOiX99s
#typescript #gamedev
👍3
15 продвинутых приёмов TypeScript, о которых знают не все
Казалось бы, вы уверенно владеете TypeScript — аннотации, дженерики, утилитарные типы… Но язык прячет множество фишек, способных упростить код и сделать его безопаснее.
В этой статье вы найдете полезные трюки, которые пригодятся на продвинутых проектах.
#typescript@tproger_web #фронтенд@tproger_web
Казалось бы, вы уверенно владеете TypeScript — аннотации, дженерики, утилитарные типы… Но язык прячет множество фишек, способных упростить код и сделать его безопаснее.
В этой статье вы найдете полезные трюки, которые пригодятся на продвинутых проектах.
#typescript@tproger_web #фронтенд@tproger_web
❤9👍4
От подписчика: Как работают generics в TypeScript на реальном примере
Вам когда-нибудь приходилось писать универсальную функцию, которая работает с разными типами данных — и при этом хочется сохранить строгую типизацию? Именно для таких случаев в TypeScript есть generics. Концепция, знакомая по Java, C#, Kotlin и даже Rust или Go, здесь реализована лаконично и мощно.
🔍 Когда это действительно нужно
Представим задачу: есть сервис генерации изображений. В зависимости от исполнителя (например, OpenAI или DeepAI) параметры запроса могут отличаться. Чтобы избежать ошибок и сделать код устойчивым к изменениям, можно связать тип исполнителя с набором параметров с помощью generics.
📦 Типы параметров:
🔁 Соответствие между исполнителем и типом параметров:
🧠 И теперь — самое интересное. С помощью generics можно автоматически определять нужный тип параметров при создании задачи:
📌 Пример использования в методе сервиса:
📎 А вот и вызов метода:
Если параметры окажутся не теми, TypeScript подскажет об ошибке ещё до запуска кода.
👨💻 Полный пример можно посмотреть в песочнице.
🎯 Вывод
Generics в TypeScript — это способ писать более гибкий и надёжный код. Если освоите эту концепцию, работа с типами станет не только проще, но и безопаснее.
Прислал: @IlyaIvanchikov
Вы также можете прислать свои материалы в нашу предложку!
#отподписчика #typescript
Вам когда-нибудь приходилось писать универсальную функцию, которая работает с разными типами данных — и при этом хочется сохранить строгую типизацию? Именно для таких случаев в TypeScript есть generics. Концепция, знакомая по Java, C#, Kotlin и даже Rust или Go, здесь реализована лаконично и мощно.
🔍 Когда это действительно нужно
Представим задачу: есть сервис генерации изображений. В зависимости от исполнителя (например, OpenAI или DeepAI) параметры запроса могут отличаться. Чтобы избежать ошибок и сделать код устойчивым к изменениям, можно связать тип исполнителя с набором параметров с помощью generics.
📦 Типы параметров:
export type OpenAIImageGenerationType = {
contentId: string;
buffer: Buffer;
prompt: string;
};
export type DeepAIImageGenerationType = {
contentId: string;
gender: GenderType;
n: number;
};🔁 Соответствие между исполнителем и типом параметров:
export enum GenerationExecutorTypeEnum {
DEEP_IMAGE_GENERATION = 'deep_image_generation',
OPEN_IMAGE_GENERATION = 'open_image_generation'
}
export type ExecutorToParamsMap = {
[GenerationExecutorTypeEnum.OPEN_IMAGE_GENERATION]: OpenAIImageGenerationType;
[GenerationExecutorTypeEnum.DEEP_IMAGE_GENERATION]: DeepAIImageGenerationType;
};🧠 И теперь — самое интересное. С помощью generics можно автоматически определять нужный тип параметров при создании задачи:
export type GenerationJobType<E extends keyof ExecutorToParamsMap> = {
name: string;
executor: E;
params: ExecutorToParamsMap[E];
timeout?: number;
};📌 Пример использования в методе сервиса:
class JobImageGenerationService {
async createGenerationJob<E extends keyof ExecutorToParamsMap>(
incomingJob: GenerationJobType<E>
): Promise<void> {
// Тут мы уверены, что переданы нужные параметры под нужного исполнителя
}
}📎 А вот и вызов метода:
await this.jobImageGenerationService.createGenerationJob({
name: "generate_image",
executor: GenerationExecutorTypeEnum.DEEP_IMAGE_GENERATION,
params: {
contentId,
gender,
n,
}
});Если параметры окажутся не теми, TypeScript подскажет об ошибке ещё до запуска кода.
👨💻 Полный пример можно посмотреть в песочнице.
🎯 Вывод
Generics в TypeScript — это способ писать более гибкий и надёжный код. Если освоите эту концепцию, работа с типами станет не только проще, но и безопаснее.
Прислал: @IlyaIvanchikov
Вы также можете прислать свои материалы в нашу предложку!
#отподписчика #typescript
👍15❤7
Пишем игру на JS/TS и развиваем навык работы с кодом
В статье автор рассказывает, как создать игру, которая будет предлагать вам рандомный текст и засекать за сколько по времени вы сможете его напечатать.
Сохраните, чтобы не потерять: https://tproger.ru/articles/pet-proekt-pishem-igru-na-js-ts-i-razvivaem-navyk-raboty-s-kodom/
#typescript #javascript #петпроект
В статье автор рассказывает, как создать игру, которая будет предлагать вам рандомный текст и засекать за сколько по времени вы сможете его напечатать.
Сохраните, чтобы не потерять: https://tproger.ru/articles/pet-proekt-pishem-igru-na-js-ts-i-razvivaem-navyk-raboty-s-kodom/
#typescript #javascript #петпроект
👍7🤔2
Типизация в React Router: ещё больше надёжности для вашей навигации
Когда приложение растёт, слежение за маршрутами становится сложной задачей. Типизированная навигация помогает поймать ошибки ещё на этапе разработки, спасти ваши нервы и сделать переходы надежнее.
Про конкретные подходы к типизации, советы по внедрению и рабочие примеры для реальных проектов на React вы можете узнать тут.
#react #фронтенд #typescript
Когда приложение растёт, слежение за маршрутами становится сложной задачей. Типизированная навигация помогает поймать ошибки ещё на этапе разработки, спасти ваши нервы и сделать переходы надежнее.
Про конкретные подходы к типизации, советы по внедрению и рабочие примеры для реальных проектов на React вы можете узнать тут.
#react #фронтенд #typescript
👍6❤2🤩1
Создание Typing Test приложения
Typing Test App — это приложение, которое позволяет проверять скорость и точность печати. Для его создания автор выбрал React и TypeScript , а для работы с состоянием использовал Redux Toolkit.
С подробным туториалом, а так же с репозиторием проекта вы сможете ознакомиться по ссылке:
https://tproger.ru/articles/sozdanie-typing-test-prilozheniya-na-react-typescript-redux-toolkit/
#react #typescript
Typing Test App — это приложение, которое позволяет проверять скорость и точность печати. Для его создания автор выбрал React и TypeScript , а для работы с состоянием использовал Redux Toolkit.
С подробным туториалом, а так же с репозиторием проекта вы сможете ознакомиться по ссылке:
https://tproger.ru/articles/sozdanie-typing-test-prilozheniya-na-react-typescript-redux-toolkit/
#react #typescript
👍3🤩1
20 приемов TypeScript, которые должен знать каждый разработчик
Подборок с приёмами для JS много, хотя TypeScript может побаловать ещё более интересными решениями, которые сильно упрощают разработку и делают код чище и более поддерживаемым.
Исправляем это упущение и делимся подборкой из 20 советов.
Если знаете что-то ещё крутое, делитесь в комментариях.
#typescript
Подборок с приёмами для JS много, хотя TypeScript может побаловать ещё более интересными решениями, которые сильно упрощают разработку и делают код чище и более поддерживаемым.
Исправляем это упущение и делимся подборкой из 20 советов.
Если знаете что-то ещё крутое, делитесь в комментариях.
#typescript
👍3👎1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Только посмотрите, что творит эта библиотека
TypeGPU — это модульный и открытый набор инструментов для WebGPU с расширенным выводом типов и возможностью писать шейдеры на TypeScript. То есть вы можете использовать возможности GPU для вашего сайта, не погружаясь в нюансы низкоуровневого API.
Ключевая фишка — директива
Подробнее о библиотеке можно почитать здесь.
#javascript #typescript #библиотека
TypeGPU — это модульный и открытый набор инструментов для WebGPU с расширенным выводом типов и возможностью писать шейдеры на TypeScript. То есть вы можете использовать возможности GPU для вашего сайта, не погружаясь в нюансы низкоуровневого API.
Ключевая фишка — директива
'use gpu', которая компилирует JS в WSGL для запуска на графическом процессоре.Подробнее о библиотеке можно почитать здесь.
#javascript #typescript #библиотека
🔥22❤2💩2