2) TS becomes the official mainline, whoever doesn’t like types can just keep writing as they did before, because valid JS is valid TS
Problem solved, it’s not that difficult.
Non-exhaustive examples:
let foo = 2
foo = "foo" // TS disallows type change
let bar = {}
bar.baz = 2 // TS disallows adding property