/** A class definition with a generic parameter */class Queue<T> { private data = []; push(item: T) { this.data.push(item); } pop(): T | undefined { return this.data.shift(); }}/** Again sample usage */const queue = new Queue<number>();queue.push(0);queue.push("1"); // ERROR : cannot push a string. Only numbers allowed
Member functions
class Utility { reverse<T>(items: T[]): T[] { var toreturn = []; for (let i = items.length - 1; i >= 0; i--) { toreturn.push(items[i]); } return toreturn; }}