TypeScript/tests/cases/compiler/propagationOfPromiseInitialization.ts

14 lines
352 B
TypeScript
Raw Normal View History

2014-07-13 01:04:16 +02:00
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;
});