Topics Covered
TypeScript Fundamentals
- Introduction to TypeScript
- What is TypeScript?
- Key Differences between JavaScript and TypeScript
- Benefits of TypeScript
Setting up the Environment
- Installing TypeScript
- Using tsc (TypeScript Compiler)
- Creating and Configuring tsconfig.json
Basic Syntax
- Variables and Constants
- Data Types and Type Annotations
- Type Inference
- Type Assertions
Types in Depth
- Primitive Types-
- String
- Number
- Boolean
- Null
- Undefined
- Symbol
- Bigint
- Object Types -
- Arrays
- Tuples
- Enums 4.Objects
- Advanced Types -
- Union Types
- Intersection Types
- Literal Types
- Nullable Types (strictNullChecks)
- Type Aliases and Interfaces
- Differences and Use Cases
- Extending Interfaces and Aliases
- Utility Types
- Predefined (Partial, Required, Readonly, Record, etc.)
- Custom Utility Types
Functions
- Function Declarations and Expressions
- Return Types and Void
- Optional and Default Parameters
- Rest Parameters
- Function Overloads
- Callbacks with Types
Arrays
- Basic Arrays
- Readonly Arrays
- Tuples and Tuple Types
- Multidimentional Arrays
- MultiTyped Arrays
Enums
- Basic Enums
- Enum Types
- Numeric Enums
- String Enums
- Heterogenous Enums
- Const Enums
Objects
- Defining Objects with Type Annotations
- Nested Object Types
Modules
- Import/Export Syntax
- Default and Named Exports
- Module Resolution
- Module Loading
- Require()
Object-Oriented Programming
- Classes
- Declaration and Initialization
- Constructors
- Methods and Properties
- Access Modifiers - public, private, protected
- Readonly and Static Members
- Inheritance and Polymorphism
- Abstract Classes and Methods
- Interfaces and Classes
- Implementing Interfaces
- Extending Interfaces
- Advanced OOP Concepts
- Mixins
- Composition vs. Inheritance
Generics
- Introduction to Generics
- Generic Functions and Constraints
- Generic Interfaces and Classes
- Advanced Generics (Nested Generics, Variance)