AssemblyScript compiles strictly typed TypeScript to WebAssembly using Binaryen. More precisely, it subsets TypeScript's syntax and semantics so programs written using this subset can be compiled to WebAssembly ahead of time.
See the AssemblyScript wiki for further documentation: