In my opinion you transpile TypeScript code to ES6 by using typescript
and then re-transpile it to es5/es3
using babel
to use in most javascript run times. Now because typescript compiler gives you es6 javascript you can do tree-shaking
which is only supported for es6 module. And after tree-shaking your es6 javascript
you can now compile it down to es5
to be able to used by most of the javascript run times out there.
Basically
- Compile ts to js-es6
tsconfig
{
"compilerOptions": {
"target": "es6"
}
}
- tree shake or dead code elimination in es6 javascript
Tree Shaking
Using rollup etc
- Transpile to es5 javascript to be able to run in most of the javascript runtimes
.babelrc
{
"presets": [
"es-2015",
"stage-2"
]
}