this post was submitted on 22 Nov 2023
190 points (92.0% liked)

Programmer Humor

19480 readers
30 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 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[โ€“] Lowpast@lemmy.world 59 points 11 months ago (1 children)

Sounds like you don't know how to properly use TypeScript...

[โ€“] Zangoose@lemmy.world 29 points 11 months ago (3 children)

If I had the willpower or time to go through a multi-thousand line (not including the html templates) legacy Angular 6 codebase where almost every property is typed 'any' then I assure you I would have, it's driving me insane ๐Ÿ™ƒ, also why I prefer backend

[โ€“] 0xSim@fedia.io 44 points 11 months ago

The boy scout technique: fix your types when you're working on a bug or a feature, one file at a time. Also try to use unknown instead of any for more sensitive parts, it will force you to typecheck.

[โ€“] roadrunner_ex@lemmy.ca 13 points 11 months ago (2 children)

I kinda feel your pain. A project that I helped launch is written in Typescript technically, but the actual on-the-ground developers were averse to using type safety, so any is used everywhere. So, it becomes worst of both worlds, and the code is a mess (I don't have authority in the project anymore, and wouldn't touch it even if I could).

I'm also annoyed at some level because some of the devs are pretty junior, and I fear they are going to go forward thinking Typescript or type safety in general is bad, which hurts my type-safety-loving-soul

[โ€“] Lowpast@lemmy.world 6 points 11 months ago

One file at a time. Make strong pre-commit eslint rules (that way you don't impact existing code), eventually update tsconfig. You'll get there :)

[โ€“] Zangoose@lemmy.world 3 points 11 months ago (2 children)

In theory I'm a fan of the inferred but static typing systems that most modern languages use (kotlin, rust, TS, etc.) where most local variable types can be inferred and only return types/object fields/parameters need explicit types.

I just despise typescript because it feels more like someone put a bandaid over JavaScript and all of its oddities instead of making a properly fleshed out language, and allowing the option for an 'any' type to be used freely by default emphasizes that.

[โ€“] Zikeji@programming.dev 7 points 11 months ago (1 children)

Based on your description it sounds like you haven't given it a fair shake. I'll take TS over JS any day, at least there is room for improvement. I will say however I personally haven't been unlucky enough to run into projects that abuse the any type. The worst I've run into is a JS library with no typings I have to manually type.

[โ€“] Knusper@feddit.de 1 points 11 months ago

I imagine what they mean is e.g. that TypeScript can tell you something is a Date, but it doesn't attempt to fix some of the confusing, quirky behaviour with that: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#interpretation_of_two-digit_years

So, yes, it's generally better than JS, but it doesn't actually make it good/attractive, if you're used to the sanity of backend languages. It very much feels like lipstick on a pig.

[โ€“] Traister101@lemmy.today 1 points 11 months ago

TypeScript is JavaScript and not in the literal it's compiled to JS sense but in the think of TS as a linter not a language sense.

[โ€“] walter_wiggles@lemmy.nz 11 points 11 months ago

Print the code out and burn it