WeSearch

TypeScript's number type is a lie

Daniel Brain· ·8 min read · 0 reactions · 0 comments · 11 views
#typescript#programming#software-development
TypeScript's number type is a lie
⚡ TL;DR · AI summary

TypeScript's number type lacks the ability to enforce type safety for different numerical units, leading to potential bugs in code. Developers often encounter issues when passing numbers with different meanings to functions expecting specific units. To mitigate this, some teams implement custom types and ESLint rules to ensure proper handling of numerical values with associated units.

Key facts
Original article
Medium · Daniel Brain
Read full at Medium →
Opening excerpt (first ~120 words) tap to expand

TypeScript’s number type is a lieDaniel Brain8 min read·Just now--ListenSharePress enter or click to view image in full size5000 is 5000 is 5000.It might be milliseconds. It might be seconds. It might be the year, the price in cents, the height in pixels, or the number of bytes in your payload. TypeScript has no idea. It will happily let you pass any of them to any function that takes a number. That is not type safety. That is a vibe.This is the bug you wrote last week:setTimeout(retry, 5); // 5 milliseconds, not 5 seconds. Whoops.This is the bug your coworker wrote:const expiresAt = Date.now() + ttl; // ttl is in seconds.

Excerpt limited to ~120 words for fair-use compliance. The full article is at Medium.

Anonymous · no account needed
Share 𝕏 Facebook Reddit LinkedIn Threads WhatsApp Bluesky Mastodon Email

Discussion

0 comments

More from Medium