In this lesson, we learn about the mechanics of the TypeScript type system. We learn how to read basic syntax of TypeScript and delve into what it means for a type system to be Structural and Erased. We highlight the power of TypeScript’s type inference and get a board overview of the various types available to us.
For further reading, I recommend the getting started guide in the TypeScript handbook - especially the sections for JS developers as well as the Java/C# section - most of this is relevant for PHP (and any OOP heavy language) as well. See here and here.