Arrays, tuples, Record and Map

Typed arrays, tuples, Record for dictionaries, Map and Set, and sorting.

Runs in Zerethon IDE · TypeScript 7 Official TypeScript documentation ↗
main.ts
const scores: number[] = [70, 95, 8, 82];
const sorted = [...scores].sort((a, b) => a - b);
console.log(sorted, scores.filter((s) => s >= 80));

const point: [number, number] = [3, 4]; // a tuple
const [x, y] = point;
console.log(Math.hypot(x, y));

const ages: Record<string, number> = { ada: 36 };
ages['alan'] = 41;
console.log(Object.keys(ages), ages['linus'] ?? 'unknown');

const seen = new Map<string, number>();
for (const word of ['a', 'b', 'a']) seen.set(word, (seen.get(word) ?? 0) + 1);
console.log([...seen.entries()], new Set<number>([1, 1, 2]).size);

interface Person { name: string; age: number }
const people: Person[] = [{ name: 'bob', age: 25 }, { name: 'amy', age: 31 }];
console.log(people.sort((a, b) => b.age - a.age).map((p) => p.name));

Output

[ 8, 70, 82, 95 ] [ 95, 82 ]
5
[ 'ada', 'alan' ] unknown
[ [ 'a', 2 ], [ 'b', 1 ] ] 2
[ 'amy', 'bob' ]

Watch out: As in JavaScript, sort() without a compare function sorts as strings, and it sorts in place.