📂 Typescript
graph LR
TS["fa:fa-code TypeScript"]
TS --> |"Adds static typing"| Types["fa:fa-list-ul Basic Types"]
TS --> |"Enhances code organization"| Interface["fa:fa-puzzle-piece Interfaces"]
TS --> |"Adds OOP features"| Classes["fa:fa-cube Classes"]
TS --> |"Type manipulation"| Advanced["fa:fa-cogs Advanced Types"]
TS --> |"Code reusability"| Generics["fa:fa-recycle Generics"]
Types --> T1["fa:fa-font string"]
Types --> T2["fa:fa-hashtag number"]
Types --> T3["fa:fa-toggle-on boolean"]
Types --> T4["fa:fa-layer-group array"]
Types --> T5["fa:fa-object-group object"]
Types --> T6["fa:fa-times null/undefined"]
Interface --> I1["fa:fa-file-contract Object Shape"]
Interface --> I2["fa:fa-arrows-alt Extended Interfaces"]
Interface --> I3["fa:fa-check Optional Properties"]
Interface --> I4["fa:fa-lock Readonly Properties"]
Classes --> C1["fa:fa-shield-alt Access Modifiers"]
Classes --> C2["fa:fa-arrow-up Inheritance"]
Classes --> C3["fa:fa-compress-arrows-alt Implementing Interfaces"]
Classes --> C4["fa:fa-bullseye Abstract Classes"]
Advanced --> A1["fa:fa-union Union Types"]
Advanced --> A2["fa:fa-intersection-alt Intersection Types"]
Advanced --> A3["fa:fa-type Type Aliases"]
Advanced --> A4["fa:fa-keyboard Keyof"]
Generics --> G1["fa:fa-box Generic Functions"]
Generics --> G2["fa:fa-boxes Generic Classes"]
Generics --> G3["fa:fa-constraint Generic Constraints"]