Mutators Everywhere
Array mutators on every mutable receiver shape, plus variadic push/unshift, and the NaN-correct Math/parse/charCode behavior.
class TaskList {
titles: string[] = [];
add(t: string): number {
return this.titles.push(t);
}
}
const list = new TaskList();
list.add("write docs");
list.add("fix bugs");
list.titles.unshift("wake up", "coffee in Thessaloniki");
console.log(list.titles.join(" -> "));
const done = list.titles.shift();
console.log("done:", done, "| remaining:", list.titles.length);
const grid: number[][] = [[1, 2], [3, 4]];
grid[0].push(99);
console.log(grid[0].join(","));
const nums: number[] = [5];
console.log(nums.push(6, 7, 8), nums.join(","));
console.log(Math.floor(NaN), Math.min(1, NaN), Math.sign(-Infinity));
console.log(Math.round(-0.5), Math.round(2.5));
console.log(parseInt("abc"), parseInt("12px"), parseFloat("3.5kg"));
console.log("abc".charCodeAt(1), "abc".charCodeAt(42));View source on GitHubexamples/arrays/mutators_everywhere.ts