Types

Types in TypeScript allow you to define custom data structures and enforce specific constraints on the data. They are similar to interfaces but offer additional features.

Example Type:

type User = {
    firstName: string;
    lastName: string;
    age: number;
};

1. Unions

Unions allow you to specify that a value can be one of several types. This is useful when a variable or parameter can accept multiple data types.

Example:

type StringOrNumber = string | number;

function printId(id: StringOrNumber) {
    console.log(`ID: ${id}`);
}

printId(101);     // Output: ID: 101
printId("202");   // Output: ID: 202

2. Intersection

Intersection types combine multiple types into one. This allows you to create a type that has all properties of the individual types.

Example:

type Employee = {
    name: string;
    startDate: Date;
};

type Manager = {
    name: string;
    department: string;
};

type TeamLead = Employee & Manager;

const teamLead: TeamLead = {
    name: "harkirat",
    startDate: new Date(),
    department: "Software developer"
};

In this example, TeamLead is an intersection of Employee and Manager, meaning it must have all properties defined in both types.

3. Type Aliases

Type aliases allow you to create custom names for types, making your code more readable and maintainable.

Example:

type Point = {
    x: number;
    y: number;
};

type Rectangle = {
    topLeft: Point;
    bottomRight: Point;
};

const rect: Rectangle = {
    topLeft: { x: 0, y: 0 },
    bottomRight: { x: 10, y: 10 }
};

4. Literal Types

Literal types allow you to specify exact values that a variable can have.

Example:

type Color = "red" | "green" | "blue";

function printColor(color: Color) {
    console.log(`Selected color: ${color}`);
}

printColor("red");   // Output: Selected color: red

Summary

  • Types in TypeScript allow you to define custom data structures and enforce specific constraints on the data.

  • Unions and intersections provide flexibility in specifying variable types and combining multiple types.

  • Type aliases improve code readability by creating custom names for complex types.

  • Literal types allow you to specify exact values that variables can have, enhancing type safety and expressiveness in your code.

Last updated

Was this helpful?