Typescript 中的“Date”类型不存在“getWeek”属性

aru*_*mar 3 javascript typescript

我正在尝试从给定的日期范围计算一周的开始日期和结束日期。

下面的代码给了我这个错误 [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();
Run Code Online (Sandbox Code Playgroud)

Tit*_*mir 7

您需要Date使用接口合并在接口上声明方法

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();
Run Code Online (Sandbox Code Playgroud)

或者,如果您不使用模块:

interface Date {
    getWeek (start?: number) : [Date, Date]
}
Run Code Online (Sandbox Code Playgroud)