类型'number中不存在属性'getTime'日期'

class SW {
    private startTime: number | Date
    private endTime: number | Date

    constructor() {
        this.startTime = 0,
        this.endTime = 0
    }
    start() {
        this.startTime = new Date();    
    }
    stop() {
        this.endTime = new Date();   
    }

    getDuration() {
        const seconds = (this.endTime.getTime() - this.startTime.getTime()) / 1000;
    }
}

现在我有这个错误: Property 'getTime' does not exist on type 'number | Date'.

基于此链接,我也尝试声明 Date 但没有奏效。

interface Date {
    getTime(): number
}

任何想法将不胜感激。

回答

您的财产被声明为number | Date,这意味着它可以是。在您的构造函数中,它是一个数字。稍后,当您调用 时start,将其从 更改numberDate。在 中getDuration,TypeScript 无法知道它是什么(numberDate)。

从查看您的代码来看,您可能希望始终number通过使用Date.now()而不是new Date()然后不使用来使用getTime

class SW {
    private startTime: number;
    private endTime: number;

    constructor() {
        this.startTime = 0,
        this.endTime = 0
    }
    start() {
        this.startTime = Date.now();    
    }
    stop() {
        this.endTime = Date.now();   
    }

    getDuration() {
        const seconds = (this.endTime - this.startTime) / 1000;
    }
}

您也可以考虑getDuration抛出错误或返回NaNwhenthis.endTimethis.startTimeis 0


以上是类型'number中不存在属性'getTime'日期'的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>