TypeScript sort by date not working
sorting, typescript
Solution
Try using the Date.getTime() method:
public sortByDueDate(): void {
this.myArray.sort((a: TaskItemVO, b: TaskItemVO) => {
return a.dueDate.getTime() - b.dueDate.getTime();
});
}
^ Above throws error with undefined date so try below:
Edit
If you want to handle undefined:
private getTime(date?: Date) {
return date != null ? date.getTime() : 0;
}
public sortByDueDate(): void {
this.myArray.sort((a: TaskItemVO, b: TaskItemVO) => {
return this.getTime(a.dueDate) - this.getTime(b.dueDate);
});
}
Problem
I have an object `TaskItemVO` with field `dueDate` which has the type `Date`: ``` export class TaskItemVO { public dueDate: Date; } ``` I have this method which I call when I try to sort by date but it is not working: ``` public sortByDueDate(): void { this.myArray.sort((a: TaskItemVO, b: TaskItemVO) => { return a.dueDate - b.dueDate; }); } ``` I get this error in the return line of method: The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type. The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type. So what is the correct way of sorting array by date fields in TypeScript?