代码之家  ›  专栏  ›  技术社区  ›  Sadeghbayan

类型“number | Date”上不存在属性“getTime”

  •  0
  • Sadeghbayan  · 技术社区  · 4 年前
    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'.

    Link

    interface Date {
        getTime(): number
    }
    

    2 回复  |  直到 4 年前
        1
  •  5
  •   T.J. Crowder    4 年前

    number | Date ,也就是说可能是。在构造函数中,它是一个数字。稍后,当你打电话来的时候 start ,您可以从 number Date . 在 getDuration

    从查看代码开始,您可能希望始终使用 通过使用 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;
        }
    }
    

    获取持续时间 抛出错误或返回 NaN 什么时候 this.endTime this.startTime 0 .

        2
  •  1
  •   Vasim Hayat    4 年前

    简单点就行了

    class SW {
      private startTime: number;
      private endTime: number;
     
      start() {
        this.startTime = new Date().getTime(); 
      }
      stop() {
        this.endTime = new Date().getTime();
      }
    
      getDuration() {
        return (this.endTime - this.startTime) / 1000;
      }
    }