Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Property 'getWeek' does not exist on type 'Date' in Typescript [duplicate]

I'm trying to calculate start date and end date of a week from the given date range.

Below code gives me this error [ts] Property 'getWeek' does not exist on type 'Date'.

  Date.prototype.getWeek = function(start)
{
    start = start || 0;
    var today = new Date(this.setHours(0, 0, 0, 0));
    var day = today.getDay() - start;
    var date = today.getDate() - day;

    var StartDate = new Date(today.setDate(date));
    var EndDate = new Date(today.setDate(date + 6));
    return [StartDate, EndDate];
}

var Dates = new Date().getWeek();
like image 908
arunkumar Avatar asked Jan 29 '23 07:01

arunkumar


1 Answers

You need to declare the method on the Date interface using interface merging

declare global {
    interface Date {
        getWeek (start?: number) : [Date, Date]
    }
}
Date.prototype.getWeek = function(start)
{
    start = start || 0;
    var today = new Date(this.setHours(0, 0, 0, 0));
    var day = today.getDay() - start;
    var date = today.getDate() - day;

    var StartDate = new Date(today.setDate(date));
    var EndDate = new Date(today.setDate(date + 6));
    return [StartDate, EndDate];
}

var Dates = new Date().getWeek();

Or if you are not using modules:

interface Date {
    getWeek (start?: number) : [Date, Date]
}
like image 185
Titian Cernicova-Dragomir Avatar answered Jan 31 '23 08:01

Titian Cernicova-Dragomir