TypeScript Cheat Sheet

Last Updated: November 21, 2025

Basic Types

Type Example
string let name: string = 'John'
number let age: number = 30
boolean let isActive: boolean = true
array let items: string[] = ['a', 'b']
tuple let pair: [string, number] = ['age', 30]
enum enum Color {Red, Green, Blue}
any let data: any = 'anything'
void function log(): void {...}
null/undefined let u: undefined = undefined

Interfaces

interface User {
  name: string;
  age: number;
  email?: string;  // Optional property
  readonly id: number;  // Read-only
}

const user: User = {
  name: "John",
  age: 30,
  id: 1
};

// Extending interfaces
interface Employee extends User {
  department: string;
}

Functions

// Function with typed parameters and return
function add(a: number, b: number): number {
  return a + b;
}

// Arrow function
const multiply = (a: number, b: number): number => a * b;

// Optional and default parameters
function greet(name: string, greeting: string = "Hello"): string {
  return `${greeting}, ${name}`;
}

// Rest parameters
function sum(...numbers: number[]): number {
  return numbers.reduce((a, b) => a + b, 0);
}

Generics

// Generic function
function identity<T>(arg: T): T {
  return arg;
}

// Generic interface
interface Box<T> {
  value: T;
}

// Generic class
class Container<T> {
  private value: T;

  constructor(value: T) {
    this.value = value;
  }

  getValue(): T {
    return this.value;
  }
}

Type Assertions & Union Types

// Type assertion
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;

// Union types
let value: string | number;
value = "hello";
value = 42;

// Type guards
function isString(value: string | number): value is string {
  return typeof value === "string";
}
💡 Pro Tip: Use strict mode in tsconfig.json for better type safety!
← Back to Programming Languages | Browse all categories | View all cheat sheets