TypeScript

SitePen is a huge supporter of TypeScript. It allows our developers to write using modern standards support for ES6 and some ES7 features while still targeting ES5 browsers. It also includes a type system that adds to our code’s integrity and makes it easier to write good software.

As noted in the Dojo 2 vision, we have chosen TypeScript as our approach to building tools we rely on for a next-generation JavaScript and TypeScript stack. With the emergence of ES6 (a.k.a. ES2015), as developers we’re currently in a state where the language and environments (browsers, servers, desktop apps, mobile apps, IoT devices, etc.) are greatly improved, but in a backwards-incompatible manner. In the short term, this means that to leverage new features of the platform, we need a tool to transpile to things that work in browsers today.

As such, about 18 months ago we reviewed the landscape, we started investigating options that could make us more productive as engineers. ES6 had many great changes, but it stops short of some things that can make us more productive as engineers, in particular optional strong-typing, and interfaces. We wanted something more than ES6 would offer, which led us to TypeScript. So while Babel is a great solution for transpiling from ES6, TypeScript goes further in giving us things we simply don’t get with ES6 and likely to never get from ECMAScript/JavaScript.

Lessons Learned

Recently our team delivered two talks on TypeScript, sharing what we’ve learned with the community during this journey from ES5 to ES6 and TypeScript.

In London, Kitson Kelly gave an entertaining talk, TypeScript: Or How I Learned to Stop Worrying and Love Microsoft. Kitson focused on his personal journey of what he felt were the disadvantages of ECMAScript/JavaScript and how using TypeScript had made him more productive as a developer. He also comments on how TypeScript can really help large scale development by making the intent and maintainability of your code more clear.

In Phoenix, Paul Shannon and I spoke at the Arizona Software Community, delivering a talk covering TypeScript in Depth.

For the Arizona Software Community presentation, we created an initial set of TypeScript examples to accompany our TypeScript the Definitive Guide and Advanced Typescript posts. Our aim was to help streamline the learning curve for working with something that is mostly JavaScript, but with several key improvements. ES6 and TypeScript still have some rough edges.

For the talk itself, we covered the following topics:

  • Current state of the web
  • What is TypeScript
  • Key ES2015 features in TypeScript (the previous month’s talk was about ES2015, so we skipped most of the details here)
  • TypeScript basics
  • More advanced TypeScript topics such as decorators
  • Patterns that have emerged that change how we write code
  • Current challenges and improvements coming to TS 1.6
  • Lots of questions and answers

If you’re interested in having us deliver this talk to your meetup group or company, let us know. We may deliver it as a webinar in the near future as well.

Given that we’re building our stack on TypeScript (parts of Intern, Dojo 2 (core and many other packages on our roadmap), Mayhem, etc.), we’ve learned a of practical lessons over the past 18 months, and continue to work with the TypeScript team to make TypeScript an even better option for developers.

Learning More

Our goal with all of this is to improve developer productivity, code quality, and maintainability.

We also have a much more in depth ES6 and TypeScript fundamentals workshop coming this winter. The workshop will be very focused on learning the most important features and nuances of ES6 and TypeScript in a short amount of time.

Or if you are starting to use ES6 and/or TypeScript in your development efforts today, and need a little help, our Enterprise JavaScript Support may be an option to consider.

Contact us to discuss how we can help your organization learn more about ES6 and TypeScript.