Converting 600k Lines to TypeScript in 72 Hours

Users have been using Lucidchart for a long time to make their diagrams, since 2010 and IE6. And for nearly that long, Lucid has used Google’s Closure Compiler to manage its increasingly sophisticated code base. Closure Compiler is a typechecker and minifier that uses JSDoc annotations in comments to understand type information. As Lucid grew from 5 to 15 to 50 engineers, the tool proved enormously helpful for quality and productivity.Then in 2016, Lucid began experimenting with TypeScript. TypeScript offers more flexible and comprehensive type checking, cleaner syntax, and better IDE support than we could get with Closure-annotated JavaScript.
// Closure JavaScript

/** @const {!} */
lucid.model.DocumentEvents.PAGES_CONTENT_CHANGED =

* @constructor
* @extends {}
* @final
* @param {!Object<boolean>} pages
* @struct
lucid.model.DocumentEvents.PagesContentChanged = function(pages) {
this, ‘constructor’, lucid.model.DocumentEvents.PAGES_CONTENT_CHANGED
/** @const {!Object<boolean>} */
this.pages = pages;
is equivalent to