TypeScript/tests/cases/compiler/propagationOfPromiseInitialization.ts
2014-07-12 17:30:19 -07:00

14 lines
352 B
TypeScript

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;
});