【问题标题】:Extending the properties of existing objects like Date in TypeScript在 TypeScript 中扩展现有对象的属性,例如 Date
【发布时间】:2012-12-06 18:17:23
【问题描述】:

我需要在 Date 中声明一个静态 MinValue 属性。我的 javascript 代码看起来像,

Date.MinValue = new Date("someDate");

我发现了类似的问题和答案但是,这只是添加一个函数而不是属性。而且这些功能也没有被定义为静态的。所以,这对我没有帮助。

参考链接,

  1. Extending Array in TypeScript
  2. How does prototype extend on typescript?

【问题讨论】:

    标签: typescript


    【解决方案1】:

    我认为您不能扩展 Date 以获得额外的静态属性。您可以按如下方式扩展其原型:

    interface Date {
        min: Date;
    }
    
    Date.prototype.min = new Date();
    
    var x = new Date();
    alert(x.min.toString());
    

    要做你真正想做的事,你实际上必须对 lib.d.ts 进行更改:

    declare var Date: {
        new (): Date;
        new (value: number): Date;
        new (value: string): Date;
        new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date;
        (): string;
        prototype: Date;
        parse(s: string): number;
        UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;
        now(): number;
        min: Date;
    }
    

    并在纯 JS 中执行扩展,除了你的 TypeScript 生成的 JavaScript 之外要加载。

        Date.min = new Date();
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-17
    • 2012-10-06
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多