07-arrays-tuples.ts
Typescript/src/01-beginner/07-arrays-tuples.ts
// ============================================
// 07. Arrays and Tuples
// ============================================
// Array Type Syntax
let numbers: number[] = [1, 2, 3, 4, 5];
let names: string[] = ["Alice", "Bob", "Charlie"];
// Alternative syntax
let numbers2: Array<number> = [1, 2, 3, 4, 5];
let names2: Array<string> = ["Alice", "Bob", "Charlie"];
// Array Operations
let arr: number[] = [1, 2, 3];
// Adding elements
arr.push(4);
arr.unshift(0);
// Removing elements
arr.pop();
arr.shift();
// Accessing elements
let first = arr[0];
let last = arr[arr.length - 1];
// Iterating
for (let num of arr) {
console.log(num);
}
arr.forEach(num => console.log(num));
// Array Methods with Types
let nums: number[] = [1, 2, 3, 4, 5];
// map - higher order function
let doubled: number[] = nums.map(n => n * 2);
// filter - higher order function
let evens: number[] = nums.filter(n => n % 2 === 0);
// reduce - higher order function
let sum: number = nums.reduce((acc, n) => acc + n, 0);
// find - higher order function
let found: number | undefined = nums.find(n => n > 3);
// some - higher order function
let hasEven: boolean = nums.some(n => n % 2 === 0);
// Readonly Arrays
let readonlyNumbers: readonly number[] = [1, 2, 3];
// readonlyNumbers.push(4); // Error: Property 'push' does not exist
// Or use ReadonlyArray<T>
let readonlyNumbers2: ReadonlyArray<number> = [1, 2, 3];
// Tuples - Fixed length arrays with specific types
let person: [string, number] = ["Alice", 25];
// person = [25, "Alice"]; // Error: Type 'number' is not assignable to type 'string'
let firstElement: string = person[0]; // "Alice"
let secondElement: number = person[1]; // 25
// Named Tuples (TypeScript 4.0+)
let personNamed: [name: string, age: number] = ["Alice", 25];
// Optional Tuple Elements
let optionalTuple: [string, number?] = ["Alice"];
// Second element is optional
// Rest Elements in Tuples
let tuple: [string, ...number[]] = ["Alice", 1, 2, 3, 4];
// First element is string, rest are numbers
// Readonly Tuples
let readonlyTuple: readonly [string, number] = ["Alice", 25];
// readonlyTuple[0] = "Bob"; // Error: Cannot assign to '0' because it is a read-only property
// Common Use Cases
// Coordinates
type Point = [number, number];
let point: Point = [10, 20];
// Key-Value Pairs
type KeyValue = [string, any];
let entry: KeyValue = ["name", "Alice"];
// Function Returns
function getStatus(): [boolean, string] {
const success = true;
const message = "Operation completed";
return [success, message];
}
const [success, message] = getStatus();
export { numbers, arr, person, point, getStatus };
Related articles
01-introduction.ts
01-introduction.ts — typescript source code from the Typescript learning materials (Typescript/src/01-beginner/01-introduction.ts).
Read article →02-basic-types.ts
02-basic-types.ts — typescript source code from the Typescript learning materials (Typescript/src/01-beginner/02-basic-types.ts).
Read article →03-variables.ts
03-variables.ts — typescript source code from the Typescript learning materials (Typescript/src/01-beginner/03-variables.ts).
Read article →04-functions.ts
04-functions.ts — typescript source code from the Typescript learning materials (Typescript/src/01-beginner/04-functions.ts).
Read article →05-interfaces.ts
05-interfaces.ts — typescript source code from the Typescript learning materials (Typescript/src/01-beginner/05-interfaces.ts).
Read article →06-classes.ts
06-classes.ts — typescript source code from the Typescript learning materials (Typescript/src/01-beginner/06-classes.ts).
Read article →