1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
//// [propagationOfPromiseInitialization.ts]
interface IPromise<T> {
then<TResult>(successCallback: (promiseValue: T) => TResult, errorCallback?: (reason: any) => TResult): IPromise<TResult>;
}
var foo: IPromise<number>;
foo.then((x) => {
// x is inferred to be a number
return "asdf";
}).then((x) => {
// x is inferred to be string
x.length;
return 123;
});
//// [propagationOfPromiseInitialization.js]
var foo;
foo.then(function (x) {
// x is inferred to be a number
return "asdf";
}).then(function (x) {
// x is inferred to be string
x.length;
return 123;
});
|