25 lines
551 B
JavaScript
25 lines
551 B
JavaScript
|
//// [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) {
|
||
|
return "asdf";
|
||
|
}).then(function (x) {
|
||
|
x.length;
|
||
|
return 123;
|
||
|
});
|