SoftwareGR Presents Drew Colthorp: TypeScript's Structural Type System

Tuesday, September 18, 2018

6pm-8pm

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.

 

drew_colthorp.png

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.