7
submitted 2 years ago* (last edited 2 years ago) by CannotSleep420@lemmygrad.ml to c/programmerhumor@lemmy.ml
class Lol {
    get length() {
        console.log('Lol. LMAO even.');
        return 5;
    }
}

const noLolsAllowed = (notALol: string) => {
    for (let i = 0; i < notALol.length; ++i) {
        console.log('No lols here');
    }
}

noLolsAllowed(new Lol() as unknown as string);
you are viewing a single comment's thread
view the rest of the comments
[-] Ephera@lemmy.ml 4 points 2 years ago

I guess the point is, it's not strongly typed during runtime. In other strongly typed languages, that cast would fail, since the underlying memory layout of some random class does not fit to that of a string.

But yeah, as soon as you break out as, you're telling the type system to fuck off. So, while it does look freaky to me, too, it doesn't dispell that TypeScript is strongly typed...

[-] DerPapa69@lemmy.ml 2 points 2 years ago

Yeah, I do agree that it's a bit weird with TS. It's fully understandable though, since it just transpiles to JS, which doesn't have any type information during runtime. I think as far as webdev goes though, TS makes it at least somewhat bearable.

Sorry for the downvote btw - that wasn't me!

this post was submitted on 04 Mar 2023
7 points (100.0% liked)

Programmer Humor

32063 readers
756 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS