class GenericNumber {
    zeroValue: T;
    add: (x: T, y: T) => T;
}

let myGenericNumber = new GenericNumber‹number›();
myGenericNumber.zeroValue = 0;
myGenericNumber.add = function(x, y) { return x + y; };