interface Array { randomItem: () => T; randomIndex: () => number; last: () => T; } interface ReadonlyArray { randomItem: () => T; randomIndex: () => number; last: () => T; } Array.prototype.randomItem = function() { return this[Math.floor(Math.random()*this.length)]; } Array.prototype.randomIndex = function() { return Math.floor(Math.random()*this.length); } Array.prototype.last = function() { return this[this.length - 1]; } interface String { capitalize: () => string; } String.prototype.capitalize = function() { return this.charAt(0).toUpperCase() + this.slice(1); } "foo"; // Trick ts-node into actually running the Extensions.ts file.