TypeScript
A strongly typed superset of JavaScript that compiles to plain JS — standard at most professional engineering teams.
TypeScript adds static type checking to JavaScript, catching bugs at compile time rather than runtime. It has become the default language for professional frontend and full-stack development, replacing plain JavaScript at most companies that care about code quality and team-scale maintainability.
Typical time to job-readiness: ~6 weeks.
Learning TypeScript
Beginner
Add types to an existing JavaScript project — annotate function parameters, return values, and basic interfaces. The goal is removing 'any' from your codebase.
Intermediate
Use generics, utility types (Partial, Pick, Omit, Record), and discriminated unions. Understand how TypeScript integrates with React's prop and event systems.
Advanced
Write complex type utilities, configure tsconfig for strict mode, and understand declaration files (.d.ts). Employers assess depth through code review and open-source contributions.
Key concepts
- Type inference vs explicit type annotations
- Interfaces vs type aliases — when each is appropriate
- Generics for writing reusable, type-safe abstractions
- Union and intersection types for modeling real data shapes
- Utility types: Partial, Pick, Omit, Record, ReturnType, Awaited
- Strict mode and how it changes what TypeScript allows
Common interview topics
- What is the difference between interface and type in TypeScript
- Explain generics and give a practical example of when you'd use them
- How does TypeScript handle null and undefined in strict mode
- Explain discriminated unions and how they model exhaustive type checks
- How do you type React component props, event handlers, and refs