declare global { interface Array { randomItem: () => T; randomIndex: () => number; last: () => T; } interface ReadonlyArray { randomItem: () => T; randomIndex: () => number; last: () => T; } interface String { capitalize: () => string; } } const extendArray = () => { 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]; } } const extendString = () => { String.prototype['capitalize'] = function() { return this.charAt(0).toUpperCase() + this.slice(1); } } export const install = () => { extendArray(); extendString(); }