SoftwareGR Presents Drew Colthorp: TypeScript's Structural Type System

Tuesday, September 18, 2018


Atomic Object, 1034 Wealthy St. SE, Grand Rapids


TypeScript's Structural Type System

I was wrong. I thought TypeScript was something like a Java-ey type system layered atop JavaScript, bringing a dose of brittleness and losing the flexibility I appreciated about the warty-yet-ubiquitous multi-paradigm language.

But that's not it at all! TypeScript radically improves the JavaScript development experience by providing a flexible, light-weight type system for modern EcmaScript. It does so while maintaining a delicate balance: adding a way to enforce assumptions and invariants without removing the flexibility prized by dynamic language developers. This works because TypeScript's type system is _structural_ and not _nominal_ - that is, based on shapes of data instead of identities of types.

Come see what's cool and exciting about TypeScript's defining feature. We'll show what differentiates a structural type system from a nominal one; how key features of TypeScript provide a powerful language to express invariants about your system; and how TypeScript leverages its knowledge of what your code means to avoid most of the type system nuisances that put some developers off of statically typed languages.



About Drew

As Principal Consultant and Developer at Atomic Object, Drew is trying to find the most elegant balance between user needs, business goals, and technical constraints.