People need to stop inventing library/module/component formats that lack any kind of support for parametric polymorphism.
It's 2026, stop repeating the same mistakes again and again!
People need to stop inventing library/module/component formats that lack any kind of support for parametric polymorphism.
It's 2026, stop repeating the same mistakes again and again!
Fun With TypeScript Generics, by @adamrackis.bsky.social (@frontendmasters.com):
https://frontendmasters.com/blog/fun-with-typescript-generics/
🚨 C# devs: Why won't List assign to List but IEnumerable works?
Invariance vs covariance - List blocks mutations that corrupt types. IEnumerable enables safe read-only upcasting.
New post unpacks:
✅ out T variance explained
✅ Real-world API patterns
✅ Copy vs covariant trade-offs
Design safer APIs with covariance!
Fun with TypeScript Generics
https://fed.brid.gy/r/https://frontendmasters.com/blog/fun-with-typescript-generics/
Подход к теме Generics
Изучая Java и подойдя к теме дженериков осознал необходимость вернуться к некоторым азам, постепенно наматывая на ус новые знания. Для этого сформулировал для себя поэтапное рассуждение, которое помогло мне закрепить знания. Надеюсь поможет и еще кому-то. Это не всеобъемлющее представление о дженериках, а лишь некоторые аспекты, которые помогают понять часть проблематики, из-за которой они появились. Итак. Есть такой простейший код:
Кастомные uuid на базе дженерика
Уже более 6 лет я использую кастомные идентификаторы - одна из классных штук, за которые обожаю go. Они незаменимы в описании бизнес-логики - невозможно перепутать порядок идентификаторов. Все вызовы становятся типобезопасными и самодокументируемыми. И писать такой легкочитаемый код очень приятно. Применяю кастомные id очень широко - от парсинга http-запроса до слоя данных. В статье подробно рассказываю: • «как было» раньше (и осталось для кадастровых номеров, например), • переход от кастомизации строк к скрепным uuid.UUID и варианты типизации, • немного запутаемся в важных условиях кастомизации, • скопипастим компактное и готовое решение • и бонусом посмотрим лаконичный синоним в коде.