This is fantastic writing:
After writing TypeScript for a while, it occurred to me that the TypeScript language actually consists of two sub-languages - one is JavaScript, and the other is the type language.
For the JavaScript language, the world is made of JavaScript values; for the type language, the world is made of types.