Past discussion: https://news.ycombinator.com/item?id=13151566 (2016, 124 comments)
I wouldn't say it's less compile-time type safety assuming you assert the type of the data as soon as you obtain it. Typescript doesn't give you runtime safety anyway, so I can't really imagine any better way short of adding types to the actual runtime and making the browser assert them across MessageEvent.
Run C, C++, Go and Node.js programs as processes in browsers - https://news.ycombinator.com/item?id=13108027 - Dec 2016 (1 comment)
Browsix: Unix in the browser tab - https://news.ycombinator.com/item?id=13063232 - Nov 2016 (5 comments)