Arrays in TypeScript

Accessing arrays in TypeScript is straightforward. You can annotate the type by adding [] next to the type name.

Example 1: Find Maximum Value in an Array

Given an array of positive integers as input, return the maximum value in the array.

Solution:

function findMaxValue(numbers: number[]): number {
    return Math.max(...numbers);
}

// Example usage:
const numbers: number[] = [1, 5, 3, 9, 2];
console.log(findMaxValue(numbers)); // Output: 9

Example 2: Filter Legal Users

Given a list of users, filter out the users that are legal (greater than 18 years of age).

Solution:

interface User {
    firstName: string;
    lastName: string;
    age: number;
}

function filterLegalUsers(users: User[]): User[] {
    return users.filter(user => user.age > 18);
}

// Example usage:
const users: User[] = [
    { firstName: "Alice", lastName: "Smith", age: 20 },
    { firstName: "Bob", lastName: "Jones", age: 17 },
    { firstName: "Charlie", lastName: "Brown", age: 25 }
];
console.log(filterLegalUsers(users));
// Output: [{ firstName: "Alice", lastName: "Smith", age: 20 }, { firstName: "Charlie", lastName: "Brown", age: 25 }]

Additional Features

1. Readonly Arrays

You can use the readonly modifier to create arrays that cannot be modified after initialization.

Example:

const readonlyArray: readonly number[] = [1, 2, 3];
// readonlyArray.push(4); // Error: Cannot push to a readonly array

2. Array Methods

TypeScript provides array methods such as map, filter, reduce, etc., which work seamlessly with typed arrays.

Example:

const numbers: number[] = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.map(num => num * 2);
console.log(doubledNumbers); // Output: [2, 4, 6, 8, 10]

Summary

  • Accessing arrays in TypeScript involves annotating the type with [].

  • Arrays can hold values of any type, including primitive types, objects, and even other arrays.

  • TypeScript provides array methods and features like readonly arrays, which enhance the functionality and safety of array operations.

Last updated

Was this helpful?