nshanmugamram
8/15/2017 - 1:47 PM

expression in extend

type WithTS = new (...args: any[]) => object;

function TimeStamped<T extends WithTS> (base: T) {
    return class extends base{
        private data = new Date();
        get timeStamp() {
            return this.data;
        }
    }
}


class Asset {

}

class AssetWithTimeStamped extends TimeStamped(Asset) {
    
    constructor() {
        super();
    }

}
console.log(new AssetWithTimeStamped().timeStamp);