Nov 15, 2023
Thank you for taking the time to write this. There are some places where you mention static typing and I believe what you want is nominal typing (https://en.wikipedia.org/wiki/Nominal_type_system). TypeScript definitely does a fair bit of static type checking at transpile time, but it is structural typing and not nominal typing. You do a great job of describing how that difference matters and why it makes TypeScript different from most other statically typed languages.