Pinned Tweet
unknown type is unknown.
So, if you want to use correctly, you should do type narrowing.
Then, you can use is-kit.
github.com/nyaomaru/is-kit
is-kit v1.16.3 is out! 😸🚀
Docs improvements, stronger type-level tests, and our move to Necoz! 🐈
Huge thanks to our 3 new contributors:
guhcostan
nuriadevs
AmirAbaris
Welcome! 🙌
github.com/necoz-oss/is-kit/…
changelog-bot v0.11.0 is out! 🚀
Phase 6 complete 😸
• bounded GitHub metadata lookups
• better error diagnostics
• graceful metadata fallback
Thanks to johnnylemonny for driving Phase 6, and Prashaxt for config schema support! 🙌
github.com/necoz-oss/changel…
Happy Halloween! 🎃👻
My TypeScript horror adventure is out! 😸
🧟 `unknown` zombies
🎃 giant object pumpkins
🍬 composable Type Guards
🧛 Count Any
The twist?
`unknown` isn’t the monster.
Unchecked `any` is. 💀
dev.to/nyaomaru/trick-or-typ…
#TypeScript #OpenSource
Tomorrow’s Halloween post is almost ready 🎃👻
In TypeScript, unknown looks scary.
But unknown actually protects you.
The real monster?
Unchecked any. 🧛💀
Tomorrow, we’ll fight zombies, pumpkins, spiders, and Count Any with Type Guards. 😹
245 JSON checks passed across all 7 approaches. ✅
Then I tried inherited properties, symbol keys, sparse arrays, and `undefined` extras.
They disagreed. 😹
JavaScript always has one more surprise. 🦐
dev.to/nyaomaru/i-compared-6…
Node.js 26 “Lithium” is now Long Term Support 🎉
v26.13.0 is out, with updates through April 2029.
Heads-up for Linux users coming from an earlier LTS: libatomic may need to be installed separately.
nodejs.org/en/blog/release/v…
I compared 6 TypeScript validation libraries + a handwritten guard. 🤔
Same User. Same rules.
The surprise? Making 7 approaches mean the same thing was harder than making them compile. 😹
Full comparison! 🦐
dev.to/nyaomaru/i-compared-6…
#TypeScript #OpenSource #Validation
Another thing I noticed comparing TypeScript validators 😸
“Exact object validation” sounds simple.
But inherited fields, extra symbol keys, sparse arrays, or an extra key with `undefined` can make them disagree.
JavaScript is weird. 😹
Full comparison tomorrow! 🦐
I’m comparing 7 TypeScript runtime validation approaches for my next article.
One thing surprised me:
“max length: 100” didn’t mean the same thing everywhere. 👀
For 51 😀:
• 51 Unicode code points
• 102 UTF-16 code units
Same-looking rule, different runtime contract. 😹
TypeScript 7.1 Beta is interesting 👀
What caught me isn’t new type syntax, but the tooling side.
typescript/ast is getting a proper public API, and Content Mappers make Vue, Svelte, Astro, etc. much easier to integrate.
TypeScript 7.x is getting fun. 😸
changelog-bot v0.10.0 / v0.10.1 are out 🚀
v0.10.0:
johnnylemonny added sub-change WHY mapping for multi-change PRs.
v0.10.1:
5 new contributors joined! 🎉
KingEmma7 / jay23606 / Prashaxt / mangomac / erSpell
Thank you all! 😸
github.com/nyaomaru/changelo…
#TypeScript #OpenSource
Comparing 7 approaches to runtime validation in TypeScript. 🤔
Native TS, is-kit, Runtypes, Valibot, Zod, ArkType, typia.
Same User type. Same rules.
The hard part? Making them behave the same at runtime. 😹
Full comparison next Wednesday! 🦐
Yesterday I shared that is-kit reached 100 stars ⭐
My favorite part: an is-kit guard helped expose an Effect catchIf inference bug.
Two libraries met in real code, and an edge case appeared. 😸
dev.to/nyaomaru/is-kit-reach…
#TypeScript #OpenSource
🔐 Node.js security updates are now available!
New releases for Node.js 22.x, 24.x & 26.x address multiple vulnerabilities, including high-severity issues.
Review the details and update your systems to stay secure.
🔗 nodejs.org/en/blog/vulnerabi…
#NodeJS #Security
YAY! is-kit reached 100 GitHub stars ⭐🎉
Since 50 stars
🔑 new refinement APIs
🔍 exhaustive discriminated union
🤖 more real OSS usage
🐛 an is-kit guard even helped expose an Effect inference bug
I wrote about what changed 👇
dev.to/nyaomaru/is-kit-reach…
#TypeScript #OpenSource
nyaomaru retweeted
TypeScript 7.1 Beta is now available! Now with a preview API, content mapper support, new features, and some great optimizations. Give it a try and give us some feedback! devblogs.microsoft.com/types…
is-kit v1.16.0 is out 🎉
Added discriminatedUnionWithFallback for APIs, webhooks, and other boundaries where future discriminant may appear.
Unknown variants become one explicit fallback, malformed known variants still fail 😸
github.com/nyaomaru/is-kit/r…
#TypeScript #OpenSource
changelog-bot v0.9.2 is out 🎉
Fixed a race in the release workflow by pinning changelog generation to the release version.
Also welcomed a new contributor, Anantha-K, thanks for the great first contribution! 😸
github.com/nyaomaru/changelo…
#TypeScript #OpenSource
changelog-bot v0.9.0 is out 🚀
Every source change must now be accounted for: included in the release or recorded with an explicit exclusion reason.
No silently disappearing changes 😸
github.com/nyaomaru/changelo…
#TypeScript #OpenSource
filter(Boolean) and “remove nullish values” are not the same thing.
Boolean also removes 0, false, and ''.
Those can be perfectly valid values.
If you only mean null and undefined, say exactly that. 😸
is-kit.dev/guides/filter-nul…
#TypeScript #OpenSource


