TypeScript/tests/baselines/reference/promiseChaining1.js
Sheetal Nandi 6ab3adfd43 Modified the emitComment logic to handle emitting leading or trailing spaces depending on flags
Leading comments have trailing separator while trailing comments have leading space
This removes the extra trailing space in the trailing comments
2014-08-15 14:32:08 -07:00

27 lines
1.1 KiB
JavaScript

//// [promiseChaining1.ts]
// same example but with constraints on each type parameter
class Chain2<T extends { length: number }> {
constructor(public value: T) { }
then<S extends Function>(cb: (x: T) => S): Chain2<S> {
var result = cb(this.value);
// should get a fresh type parameter which each then call
var z = this.then(x => result)/*S*/.then(x => "abc")/*Function*/.then(x => x.length)/*number*/; // Should error on "abc" because it is not a Function
return new Chain2(result);
}
}
//// [promiseChaining1.js]
// same example but with constraints on each type parameter
var Chain2 = (function () {
function Chain2(value) {
this.value = value;
}
Chain2.prototype.then = function (cb) {
var result = cb(this.value);
// should get a fresh type parameter which each then call
var z = this.then(function (x) { return result; }).then(function (x) { return "abc"; }).then(function (x) { return x.length; }) /*number*/; // Should error on "abc" because it is not a Function
return new Chain2(result);
};
return Chain2;
})();