9

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

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

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

参考链接,

  1. 在 TypeScript 中扩展数组
  2. 原型如何在打字稿上扩展?
4

1 回答 1

9

我不认为您可以扩展 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();
于 2012-12-19T11:50:51.237 回答