mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-22 11:57:33 +08:00
angular: gave a more precise return type to $q.all<T>()
This commit is contained in:
@@ -337,6 +337,16 @@ namespace TestQ {
|
||||
let result: angular.IPromise<{a: number; b: string; }>;
|
||||
result = $q.all<{a: number; b: string; }>({a: promiseAny, b: promiseAny});
|
||||
}
|
||||
{
|
||||
let result = $q.all({ num: $q.when(2), str: $q.when('test') });
|
||||
// TS should infer that num is a number and str is a string
|
||||
result.then(r => (r.num * 2) + r.str.indexOf('s'));
|
||||
}
|
||||
{
|
||||
let result = $q.all({ num: $q.when(2), str: 'test' });
|
||||
// TS should infer that num is a number and str is a string
|
||||
result.then(r => (r.num * 2) + r.str.indexOf('s'));
|
||||
}
|
||||
|
||||
// $q.defer
|
||||
{
|
||||
|
||||
2
types/angular/index.d.ts
vendored
2
types/angular/index.d.ts
vendored
@@ -1029,7 +1029,7 @@ declare namespace angular {
|
||||
*
|
||||
* @param promises A hash of promises.
|
||||
*/
|
||||
all<T extends {}>(promises: { [K in keyof T]: IPromise<T[K]>; }): IPromise<T>;
|
||||
all<T>(promises: { [K in keyof T]: (IPromise<T[K]> | T[K]); }): IPromise<T>;
|
||||
/**
|
||||
* Creates a Deferred object which represents a task which will finish in the future.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user