Ask HN: Should IDs be strings or numbers in your codebase?
At work we're debating whether entity IDs should be typed as strings or numbers throughout our stack (API contracts, frontend, etc.).
Database auto-increments happen to be integers, but we never perform arithmetic on IDs – they're opaque identifiers.
My take: IDs are identifiers, not numbers. Typing them as strings makes this explici and makes migrating to UUIDs or other formats painless.
Am I missing a good reason to keep them as numbers? Consider storage requirements. Strings (ASCII? UTF-8?) are not as efficient as integers or UUIDs. You're not storing UUIDs as strings, are you? They are binary, only converted to the string expansion for display and/or export. Unless you're doing math with them for some reason, they're strings.