Maybe I'm just spoiled by modern languages that have this and the ones that don't are bolting it on (Python/TS) but how do you put up with it? Any language that can't tell me the what goes in / comes out of a function feels borderline worthless for a codebase more than a few files.
Trying to infer types by looking at what the current code appears to be able to do the objects is just pain for its own sake.