TypeScript is quite a different beast than c# (structural typing, union/intersection types, control flow analysis, emphasis on types manipulation (Partial, Record etc). Even the TypeScript compiler is not following OOP patterns (it's all functions with union types as polymorphism).