TypeScript code, judged.

20 TypeScript posts rated by Ewwsers · average 7.3 EWW. Beautiful, cursed and questionable TypeScript, scored 0 to 10 and roasted in the Roast Pit.

todo_forever
@todo_forever House
6d · typescript · 0 views
Launch checklist
typescript8 lines
6.8/10
NASTY
Rated by 16 Ewwsers
Cursed. Confirmed by committee.
AI ROASTFired at 10 ratings - once per post

An order function whose entire validation strategy is "trust the customer, unless they're [email protected], in which case give it away free." That last line is you insisting you'll remember to delete it, and we both know you won't.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
clean_coder
@clean_coder House
8d · typescript · 1 views
A typed event emitter
typescript15 lines
1.4/10
CLEAN
Rated by 15 Ewwsers
The crowd nods in quiet respect.
The AI roast is still asleep - it fires once, automatically, when enough judgments land.
any_typed
@any_typed House
8d · typescript · 1 views
Strict mode is on
typescript8 lines
8.4/10
HAUNTED
Rated by 21 Ewwsers
Somebody's on-call phone just rang on its own.
AI ROASTFired at 13 ratings - once per post

You turned strict mode on and then wrote `any` eleven times like a man who owns a lock but keeps the door open out of spite. `return out as unknown as any` is a double cast so you can launder the shame of using `any` back into using `any`.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
global_state
@global_state House
29d · typescript · 0 views
Singleton with extra steps
typescript11 lines
8.3/10
HAUNTED
Rated by 23 Ewwsers
This code has lore. Dark lore.
AI ROASTFired at 23 ratings - once per post

There's a private static instance carefully guarded by the null check, and then values is just public and static for anyone to shit directly into. The get() method exists purely to cosplay as a real singleton while the actual state ignores it entirely.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
any_typed
@any_typed House
31d · typescript · 0 views
The type guard
typescript3 lines
6.8/10
NASTY
Rated by 15 Ewwsers
Somebody's on-call phone just rang on its own.
AI ROASTFired at 9 ratings - once per post

The entire type system, every check, the whole damned reason you're using TypeScript, and you just lie to all of it in one line. This type guard doesn't guard a pissing thing, it's a bouncer asleep at the door waving everyone through.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
clean_coder
@clean_coder House
32d · typescript · 0 views
Result, without the ceremony
typescript8 lines
0.7/10
NEARLY BEAUTIFUL
Rated by 13 Ewwsers
Practically art. Practically.
The AI roast is still asleep - it fires once, automatically, when enough judgments land.
nested_ternary
@nested_ternary House
33d · typescript · 0 views
Enum, reinvented
typescript5 lines
9.2/10
EWW
Rated by 21 Ewwsers
The crowd gagged in perfect harmony.
AI ROASTFired at 13 ratings - once per post

Six spellings of "active" plus a stray space and a number, and `isActive` still hardcodes three of them by hand. Somewhere a type system is quietly weeping at being trusted with absolutely goddamn nothing.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
todo_forever
@todo_forever House
33d · typescript · 1 views
Feature flag
typescript7 lines
8.9/10
EWW
Rated by 27 Ewwsers
The crowd gagged in perfect harmony.
AI ROASTFired at 16 ratings - once per post

Three generations of checkout flags, all "live", none mutually exclusive, in one object that decides which one wins by vibes. Somewhere a poor bastard is reading `newCheckoutV2Fixed` and quietly updating their resume.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
stringly_typed
@stringly_typed House
33d · typescript · 0 views
Date handling
typescript5 lines
7.6/10
CURSED
Rated by 17 Ewwsers
Somebody's on-call phone just rang on its own.
The AI roast is still asleep - it fires once, automatically, when enough judgments land.
any_typed
@any_typed House
37d · typescript · 0 views
Strict mode enabled
typescript5 lines
7.2/10
NASTY
Rated by 16 Ewwsers
The crowd built a small shrine and backed away.
AI ROASTFired at 11 ratings - once per post

Five anys, two casts, and a template literal all to avoid one interface. You didn't enable strict mode, you declared war on it.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
todo_forever
@todo_forever House
37d · typescript · 1 views
Feature flag
typescript7 lines
6.7/10
GROSS
Rated by 17 Ewwsers
Somebody's on-call phone just rang on its own.
The AI roast is still asleep - it fires once, automatically, when enough judgments land.
copy_pasta
@copy_pasta House
37d · typescript · 0 views
Optional chaining, hand rolled
typescript12 lines
9.3/10
SERIOUSLY EWW
Rated by 22 Ewwsers
Biohazard tape is being printed as we speak.
The AI roast is still asleep - it fires once, automatically, when enough judgments land.
global_state
@global_state House
37d · typescript · 0 views
Singleton with extra steps
typescript11 lines
8.3/10
HAUNTED
Rated by 23 Ewwsers
This code has lore. Dark lore.
AI ROASTFired at 15 ratings - once per post

You made a singleton and immediately bolted the entire state onto a public static so the singleton doesn't matter. Then you stapled the whole thing to globalThis, which is just telling the module system you don't believe in it.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
nested_ternary
@nested_ternary House
37d · typescript · 0 views
Enum, reinvented
typescript5 lines
6.6/10
GROSS
Rated by 18 Ewwsers
The Ewwsers recoiled in unison.
The AI roast is still asleep - it fires once, automatically, when enough judgments land.
any_typed
@any_typed House
38d · typescript · 0 views
Strict mode enabled
typescript5 lines
8.8/10
EWW
Rated by 24 Ewwsers
Verified haunted. Do not merge after midnight.
AI ROASTFired at 8 ratings - once per post

`id: any` going into a URL template with zero escaping, so congratulations, your type system watched a path traversal happen and filed no report. `any` four times in five lines isn't a type signature, it's a white flag.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
any_typed
@any_typed House
38d · typescript · 1 views
The type guard
typescript3 lines
7.8/10
DEEPLY CURSED
Rated by 20 Ewwsers
Somebody's on-call phone just rang on its own.
The AI roast is still asleep - it fires once, automatically, when enough judgments land.
todo_forever
@todo_forever House
38d · typescript · 1 views
Feature flags, live
typescript8 lines
9.2/10
EWW
Rated by 27 Ewwsers
Verified haunted. Do not merge after midnight.
AI ROASTFired at 20 ratings - once per post

Ah yes, "feature flags, live" — otherwise known as a hardcoded if-chain with a comment from 2023 explaining the system it's supposed to read from. The flag service is doing great, by the way, it just lives in this function now.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
stringly_typed
@stringly_typed House
38d · typescript · 0 views
Money
typescript11 lines
7.5/10
CURSED
Rated by 21 Ewwsers
This code has lore. Dark lore.
AI ROASTFired at 21 ratings - once per post

Money is a string, so add does floating point math and hands back 0.30000000000000004 for the price of a candy bar. You reinvented a decimals bug that banks have entire teams to prevent.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
clean_coder
@clean_coder House
38d · typescript · 0 views
A retry that backs off
typescript12 lines
0.5/10
NEARLY BEAUTIFUL
Rated by 13 Ewwsers
A rounding error away from sacred.
The AI roast is still asleep - it fires once, automatically, when enough judgments land.
global_state
@global_state House
38d · typescript · 0 views
The store
typescript12 lines
8.1/10
DEEPLY CURSED
Rated by 22 Ewwsers
The crowd built a small shrine and backed away.
AI ROASTFired at 6 ratings - once per post

You assign yourself the entire global namespace by exporting one module-level `any`, then tape it to `window.state` so the console can edit production. That's not a store, that's a `/dev/null` with a UI.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.

Post your own TypeScript: drop some code. More languages: JavaScript, Python, Java, C#, C++, C, Go, Rust.