Mastering TypeScript Types: A Deep Dive into Type System

typescript dev.to

Introduction

TypeScript, a superset of JavaScript, introduces a robust type system that enhances code quality and developer productivity. Let's delve into the world of TypeScript types and understand their significance.

Basic Types

In TypeScript, basic types include number, string, boolean, null, undefined, and more. For instance:

let count: number = 5;
let message: string = 'Hello, TypeScript!';
let isValid: boolean = true;
Enter fullscreen mode Exit fullscreen mode

Custom Types

TypeScript allows defining custom types using interfaces and type aliases. Consider the following example:

interface User {
    name: string;
    age: number;
}
let newUser: User = { name: 'Alice', age: 30 };
Enter fullscreen mode Exit fullscreen mode

Union and Intersection Types

Union types enable a variable to hold values of multiple types, while intersection types combine multiple types into one. Here's a demonstration:

type ID = number | string;
let userId: ID = 123;

interface Printable {
    print: () => void;
}
interface Loggable {
    log: () => void;
}

type PrintableAndLoggable = Printable & Loggable;
let obj: PrintableAndLoggable;
Enter fullscreen mode Exit fullscreen mode

Generics

Generics in TypeScript allow creating reusable components that work with a variety of types. Here's a generic function example:

function identity<T>(arg: T): T {
    return arg;
}
let result = identity<number>(10);
Enter fullscreen mode Exit fullscreen mode

Type Inference

TypeScript's type inference feature infers the types based on the assigned values, reducing the need for explicit type annotations. For instance:

let autoType = 10; // TypeScript infers 'number' type
Enter fullscreen mode Exit fullscreen mode

Advanced Types

TypeScript offers advanced types like conditional types, mapped types, and more for complex scenarios. These types enable sophisticated type manipulations and transformations.

Conclusion

Mastering TypeScript types is crucial for writing robust and maintainable code. By leveraging TypeScript's powerful type system, developers can catch errors early, improve code readability, and enhance overall code quality.

Source: dev.to

arrow_back Back to Tutorials