What are the tradeoffs between ReasonML (https://reasonml.github.io/) and TypeScript (https://www.typescriptlang.org/)?
There are lot of languages nowadays that target JavaScript. Choosing one of them depends on your needs and the idioms you're comfortable with.
JavaScript has a dynamic type system. Some developers prefer a static one.
TypeScript or Haxe solves this with a new language that is statically typed and only transpiles to JavaScript.
Flow is a JavaScript preprocessor that targets the same issue but without the need to learn a new language. I prefer this approach if you only need a type system.
Some JS developers want more and use more functional programming idioms (algebraic data structures, immutability, pattern matching, ...). A lot of programming languages can do it (OCaml, Haskell, ReasonML, F#, Scala, ...).
TypeScript is easy to learn if you come from the Java or C# world.
ReasonML is harder to learn if you never developed with an ML language (OCaml or F#)
My advice:
If you just need a static type system, you should consider TypeScript
If you need a type system to do a react.js or react-native app, you should consider ReasonML because ReasonReact is a huge improvement over react.js
If you need a functional programming language that compiles to js, you should consider ReasonML