this post was submitted on 05 May 2025
483 points (98.8% liked)

Programmer Humor

23052 readers
2038 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] hedgehog@ttrpg.network 1 points 1 day ago (1 children)

Where are you getting these typeless function signatures? You should get them from somewhere else.

The Ecmascript Spec for parseInt doesn’t have a type listed for the first argument, but it does call the argument “string,” which should be a pretty clear hint that it’s expected to be a string. It also explicitly states that the first step of parseInt is to coerce the first argument to a string. You should view older versions of the spec to see how it performs in older browsers / runtimes.

The MDN entry for parseInt makes it clear that parseInt expects a string or a string and explicit radix (i.e., 10 for base 10/decimal, or 16 for hexadecimal). MDN is what I recommend anyone who’s writing JavaScript use as their first resource for core JS features, for what that’s worth.

I use WebStorm to write JavaScript (and more frequently, TypeScript), and if I type parseInt( and pause a second, it pops up a type hint that reads string: string, radix?: number.

I checked in VSCode, too, and it pops up this:

parseInt(string: string, radix?: number | undefined): number`
A string to convert into a number.
Converts a string to an integer.

You can set something similar up with an LSP in Vim or Neovim, and presumably in Emacs as well.

[–] Traister101 1 points 1 day ago

You have argued that it's expected to be a string congrats. You'll notice from the grammer you used that there isn't an actual type here, you specifically pointed out how your IDE displays a type hint which is only slightly better than somebody writing some form of documentation on what the type is. Dynamic languages don't have typed args, least none that I've heard of.