You can't say "TypeScript" without "type". When we use TypeScript, we're constantly thinking about types, interacting with types, and talking about types. But we rarely stop to define "type" or explain what types really are. In this talk, we'll do exactly that, learning just enough about the theory of types to help you build a mental model for some of TypeScript's trickiest topics: assignability, inference, excess property checking, and generics. Along the way, we'll get an assist from Renaissance master and noted early TypeScripter, Michelangelo Buonarroti.