2012-12-19 15 views
9

Devo dichiarare una proprietà statica MinValue in Data. Il mio codice JavaScript assomiglia,Estensione delle proprietà di oggetti esistenti come Data in TypeScript

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

Ho trovato domande simili con risposte Ma, si tratta solo di aggiungere una funzione non proprietà. E anche quelle funzioni non sono definite come statiche. Quindi, non è utile per me.

collegamenti di cui,

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

risposta

7

Non credo che è possibile estendere Data di avere una proprietà statica aggiuntiva. È possibile estendere il suo prototipo come segue:

interface Date { 
    min: Date; 
} 

Date.prototype.min = new Date(); 

var x = new Date(); 
alert(x.min.toString()); 

di fare quello che vuole veramente fare, si sarebbe effettivamente necessario apportare una modifica al 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; 
} 

ed eseguire l'estensione in puro JS, da caricare in aggiunta al tuo JavaScript generato da TypeScript.

Date.min = new Date(); 
+0

C'è un altro modo per definire la proprietà statica? senza cambiare lib.d.ts. –

+1

Visualizzerò una risposta qui: http://stackoverflow.com/questions/13955157/how-to-define-static-property-in-typescript-interface – Fenton

Problemi correlati