TypeScript Sorting Object by Date
typescript
Solution
Reason
The type signature for `Array.prototype.sort` is:
sort(compareFn?: (a: T, b: T) => number): this;
which means the `compareFn` should return a `number`. In your case, you're trying to subtract an object from another object which doesn't make much sense. It works only because JavaScript implicitly coerces their type for you.
Solution 1
Judging by your question, I assume `filteredTxs` are objects that include a `date` property of type `Date`.
Cast your `Date` objects to a number explicitly:
this.filteredTxs.sort(function(a,b): any{
return (b.date.getTime() - a.date.getTime());
});
Solution 2
Use implicit casting to compare dates, but only for comparison purposes, not for subtraction.
this.filteredTxs.sort(function(a,b): any {
.sort((a, b) => {
if (left.date === right.date) {
return 0;
}
return (left.date > right.date)
? 1
: -1
});
Problem
I have this little code I borrowed from another question for sorting objects in an array by date. However, I can't figure out how to port this to TypeScript. ``` this.filteredTxs.sort(function(a,b): any{ return new Date(b.date) - new Date(a.date); }); ``` TS Error: ERROR in /transactions-view.component.ts(72,16): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type. /transactions-view.component.ts(72,35): error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.