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?

Original source