Programming with types : with examples in TypeScript Introduction to typing Basic types Composition Type safety Function types Advanced applications of function types Subtyping Elements of object oriented programming Generic data structures Generic algorithms and iterators Higher kinded types and beyond. Common bugs often result from mismatched data types. By precisely naming and controlling which data are allowable in a calculation a strong type system can eliminate whole classes of errors and ensure data integrity throughout an application. As a developer skillfully using types in your everyday practice leads to better code and saves time tracking down tricky data related errors. Programming with Types teaches type based techniques for writing software thats safe correct easy to maintain and practically self documenting. Designed for working developers this clearly written turtorial sticks with the practical benefits of type systems for everyday programming tasks. Following real world examples coded in TypeScript youll build your skills from primitive types up to more advanced concepts like functors and monads