A couple of thoughts, as I have been looking into using a type system with JS recently and am similarly apprehensive about transpiling:
- Can Flow do this? If so, Flow can be used via comments — no transpilation required. It doesn’t look great IMO, but at least means you don’t have to step outside of JS.
- I heard on a recent podcast there’s been some discussion within TC39 about reserving the syntax used by JS type systems (TS and Flow). Afraid these meeting notes are the only source I can find online right now, though.