Remix.run Logo
morshu9001 3 hours ago

Valid JS is often not valid TS. Any nontrivial amount of JS copied into TS will generally not work without tweaks. When people say TS is a superset of JS, it's just some academic definition of syntax supersets that isn't practically true.

Non-exhaustive examples:

    let foo = 2
    foo = "foo"  // TS disallows type change
    let bar = {}
    bar.baz = 2  // TS disallows adding property
ddtaylor an hour ago | parent | next [-]

The amount of weird TS I see that attempts to keep the JS style of code while getting the compiler to stop being mad is strange. I will see hundreds of line of type inference work, when they could have just made an actual type.

morshu9001 an hour ago | parent [-]

I feel like most people using TS are not doing it by personal choice but because someone else decided it

anematode 2 hours ago | parent | prev [-]

Even syntactically, TS is not a superset of JS: https://anemato.de/blog/js-to-ts

morshu9001 an hour ago | parent [-]

Oh I hit this case too. Yeah it's not a superset in any sense of the word.