Warning: This blog post is outdated. Instead, read chapter “The essentials of TypeScript” in “Tackling TypeScript”. This blog post is a quick introduction to TypeScript’s notation for static types. What you’ll learn # After reading this post, you should be able to understand what the following code means: interface Array<T> { concat(...items: Array<T[] | T>): T[]; reduce<U>( callback: (state: U,