From a67d9c1d527277e30d46a5ef51dc686664a24622 Mon Sep 17 00:00:00 2001 From: smhc Date: Mon, 2 Jan 2017 17:14:53 +1000 Subject: [PATCH 1/4] Added comparator to IFilterOrderBy --- angular/index.d.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/angular/index.d.ts b/angular/index.d.ts index 920b616a26..6d72ae6fef 100644 --- a/angular/index.d.ts +++ b/angular/index.d.ts @@ -660,7 +660,11 @@ declare namespace angular { interface IFilterFilterComparatorFunc { (actual: T, expected: T): boolean; } - + + interface IFilterOrderByComparatorFunc { + (left: T, right: T): boolean; + } + interface IFilterCurrency { /** * Formats a number as a currency (ie $1,234.56). When no currency symbol is provided, default symbol for current locale is used. @@ -743,9 +747,10 @@ declare namespace angular { * @param array The array to sort. * @param expression A predicate to be used by the comparator to determine the order of elements. * @param reverse Reverse the order of the array. + * @param comparator Function used to determine the relative order of value pairs. * @return Reverse the order of the array. */ - (array: T[], expression: string|((value: T) => any)|(((value: T) => any)|string)[], reverse?: boolean): T[]; + (array: T[], expression: string|((value: T) => any)|(((value: T) => any)|string)[], reverse?: boolean, comparator?: IFilterOrderByComparatorFunc): T[]; } /** From 545bec0b00bcf26d6d654f080cc334fe6021773b Mon Sep 17 00:00:00 2001 From: smhc Date: Tue, 3 Jan 2017 09:44:53 +1000 Subject: [PATCH 2/4] Corrected interface for IFilterOrderByComparatorFunc Fixed return value and parameter types. --- angular/index.d.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/angular/index.d.ts b/angular/index.d.ts index 6d72ae6fef..d614bc5265 100644 --- a/angular/index.d.ts +++ b/angular/index.d.ts @@ -661,10 +661,16 @@ declare namespace angular { (actual: T, expected: T): boolean; } - interface IFilterOrderByComparatorFunc { - (left: T, right: T): boolean; + interface IFilterOrderByItem { + value: any, + type: string, + index: any } - + + interface IFilterOrderByComparatorFunc { + (left: IFilterOrderByItem, right: IFilterOrderByItem): [-1, 0, 1]; + } + interface IFilterCurrency { /** * Formats a number as a currency (ie $1,234.56). When no currency symbol is provided, default symbol for current locale is used. @@ -748,9 +754,9 @@ declare namespace angular { * @param expression A predicate to be used by the comparator to determine the order of elements. * @param reverse Reverse the order of the array. * @param comparator Function used to determine the relative order of value pairs. - * @return Reverse the order of the array. + * @return An array containing the items from the specified collection, ordered by a comparator function based on the values computed using the expression predicate. */ - (array: T[], expression: string|((value: T) => any)|(((value: T) => any)|string)[], reverse?: boolean, comparator?: IFilterOrderByComparatorFunc): T[]; + (array: T[], expression: string|((value: T) => any)|(((value: T) => any)|string)[], reverse?: boolean, comparator?: IFilterOrderByComparatorFunc): T[]; } /** From 01fed1ac847b9d90a7e0882c77bc3a0da7f2222d Mon Sep 17 00:00:00 2001 From: smhc Date: Tue, 3 Jan 2017 10:03:08 +1000 Subject: [PATCH 3/4] Fixed again - incorrect return type --- angular/index.d.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/angular/index.d.ts b/angular/index.d.ts index d614bc5265..7d710eaa7f 100644 --- a/angular/index.d.ts +++ b/angular/index.d.ts @@ -661,14 +661,14 @@ declare namespace angular { (actual: T, expected: T): boolean; } - interface IFilterOrderByItem { - value: any, + interface IFilterOrderByItem { + value: T, type: string, index: any } - interface IFilterOrderByComparatorFunc { - (left: IFilterOrderByItem, right: IFilterOrderByItem): [-1, 0, 1]; + interface IFilterOrderByComparatorFunc { + (left: IFilterOrderByItem, right: IFilterOrderByItem): -1 | 0 | 1; } interface IFilterCurrency { @@ -756,7 +756,7 @@ declare namespace angular { * @param comparator Function used to determine the relative order of value pairs. * @return An array containing the items from the specified collection, ordered by a comparator function based on the values computed using the expression predicate. */ - (array: T[], expression: string|((value: T) => any)|(((value: T) => any)|string)[], reverse?: boolean, comparator?: IFilterOrderByComparatorFunc): T[]; + (array: T[], expression: string|((value: T) => any)|(((value: T) => any)|string)[], reverse?: boolean, comparator?: IFilterOrderByComparatorFunc): T[]; } /** From c37d3e05c1fd70b0d7c20f29b757b7c235629935 Mon Sep 17 00:00:00 2001 From: smhc Date: Tue, 3 Jan 2017 15:46:34 +1000 Subject: [PATCH 4/4] Fixed IFilterOrderByItem to not use value: T The value property of IFilterOrderByItem should be any as it is driven by the expression predicate and is not array item. --- angular/index.d.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/angular/index.d.ts b/angular/index.d.ts index 7d710eaa7f..3e74ed3321 100644 --- a/angular/index.d.ts +++ b/angular/index.d.ts @@ -661,14 +661,14 @@ declare namespace angular { (actual: T, expected: T): boolean; } - interface IFilterOrderByItem { - value: T, + interface IFilterOrderByItem { + value: any, type: string, index: any } - interface IFilterOrderByComparatorFunc { - (left: IFilterOrderByItem, right: IFilterOrderByItem): -1 | 0 | 1; + interface IFilterOrderByComparatorFunc { + (left: IFilterOrderByItem, right: IFilterOrderByItem): -1 | 0 | 1; } interface IFilterCurrency { @@ -756,7 +756,7 @@ declare namespace angular { * @param comparator Function used to determine the relative order of value pairs. * @return An array containing the items from the specified collection, ordered by a comparator function based on the values computed using the expression predicate. */ - (array: T[], expression: string|((value: T) => any)|(((value: T) => any)|string)[], reverse?: boolean, comparator?: IFilterOrderByComparatorFunc): T[]; + (array: T[], expression: string|((value: T) => any)|(((value: T) => any)|string)[], reverse?: boolean, comparator?: IFilterOrderByComparatorFunc): T[]; } /**