TypeScript Type Aliases - Create Reusable Types!
Master TypeScript type aliases for creating reusable type definitions! Learn when to use type vs interface!
Introduction
Type aliases let you create custom names for types!
What You Will Learn
- Type alias basics
- Type aliases for complex types
- Type vs interface
Prerequisites
Type Alias Basics!
type UserID = number;
type Username = string;
type isActive = boolean;
type User = {
id: UserID;
name: Username;
isActive: isActive;
};
Type Aliases for Complex Types!
Great for unions, intersections, tuples, etc!
type Status = "pending" | "approved" | "rejected";
type Coordinate = [number, number];
type UserOrAdmin = User | Admin;
Type vs Interface!
| Feature | Type | Interface |
|---------|------|-----------|
| Describe objects | Yes | Yes |
| Describe unions | Yes | No |
| Describe tuples | Yes | No |
| Extend | Via intersections | Via extends |
| Merge | No | Yes |
Rule of Thumb: Use interface for objects, type for everything else!
Best Practices
- Name types clearly:
User,Status, etc! - Prefer interfaces for objects: Good practice!
- Use types for unions/tuples: Perfect fit!
Summary
Type aliases let you create reusable types!
Related Articles
Previous Tutorial
Next Tutorial
Let's learn union & intersection types! → Union & Intersection Types