Breadcrumb

The latest version of Microsoft's typed JavaScript superset features module augmentation, faster compilation, and control flow analysis

Paul Krill Feb 24th 2016

Microsoft has made TypeScript 1.8 available and is hoping to entice developers to migrate their JavaScript projects.

In version 1.8, .js JavaScript files now can output to .tsc, accessing the TypeScript compiler and allowing developers to convert JavaScript to TypeScript. "The TypeScript compiler checks the input .js files for syntax errors, and emits valid output based on the --target and --module flags," the release notes state. "The output can be combined with other .ts (TypeScript) files as well."

The upgrade also features a module augmentation capability that lets developers design more modular libraries. "This allows library authors to distribute their libraries in a piecemeal fashion," Bowden Kelly, program manager for Visual Studio and .Net at Microsoft, said in a blog post. "Previously, TypeScript made the assumption that modules wouldn't change. With module augmentation, users have the ability to extend existing modules such that consumers can specify if they want to import the whole module or just a subset."

Strings in a type position become string literal types in version 1.8. "Only exact string matches are assignable to string literal types, and like any other type, they can be used in union types as well. So if we rewrite the AnimationOptions interface with string literal types, the API users now get type protection," Kelly said.

Version 1.8 features control flow analysis to help catch common programming errors. And statements not guaranteed to execute at runtime are now flagged as unreachable code errors; unused labels are flagged as well. Stateless function components from the React JavaScript UI library now are supported in TypeScript.

Support for JSX, an embeddable XML-like syntax, has been expanded with a capability for custom JSX factories. Version 1.8 also leverages the ChakraCore JavaScript compiler, improving compilation times.