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

  1. Name types clearly: User, Status, etc!
  2. Prefer interfaces for objects: Good practice!
  3. Use types for unions/tuples: Perfect fit!

Summary

Type aliases let you create reusable types!

Related Articles

Previous Tutorial

Interfaces

Next Tutorial

Let's learn union & intersection types! → Union & Intersection Types