From bb198751d9bf6123cfa2129615a784dfd2d5c72a Mon Sep 17 00:00:00 2001 From: Rogier Schouten Date: Thu, 12 Jun 2014 12:16:20 +0200 Subject: [PATCH 1/2] Bugfixes in timezone-js --- timezone-js/timezone-js.d.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/timezone-js/timezone-js.d.ts b/timezone-js/timezone-js.d.ts index 50b9c3f369..fa7616e392 100644 --- a/timezone-js/timezone-js.d.ts +++ b/timezone-js/timezone-js.d.ts @@ -11,7 +11,7 @@ declare module "timezone-js" { export var Date: { new (timezone?: string): TimezoneJsDate; new (time: string, timezone?: string): TimezoneJsDate; - new (year?: number, month?: number, day?: number, hour?: number, minute?: number, second?: string, timezone?: string): TimezoneJsDate; + new (year?: number, month?: number, day?: number, hour?: number, minute?: number, second?: number, millisecond?: number, timezone?: string): TimezoneJsDate; }; export interface TimezoneJsDate extends Date { @@ -25,6 +25,7 @@ declare module "timezone-js" { transport(opts: TimezoneJsOptions): any; init(opts?: TimezoneJsOptions): any; + getAllZones(): string[]; } export interface TimezoneJsOptions { From 228e8cb844a3b862bf58902c2fff6e276295b42a Mon Sep 17 00:00:00 2001 From: Rogier Schouten Date: Thu, 12 Jun 2014 14:06:43 +0200 Subject: [PATCH 2/2] Lots more things wrong - typings simply did not work. --- timezone-js/timezone-js.d.ts | 76 +++++++++++++++++++++++++++++------- 1 file changed, 61 insertions(+), 15 deletions(-) diff --git a/timezone-js/timezone-js.d.ts b/timezone-js/timezone-js.d.ts index fa7616e392..ecf7d9e489 100644 --- a/timezone-js/timezone-js.d.ts +++ b/timezone-js/timezone-js.d.ts @@ -8,19 +8,68 @@ declare module "timezone-js" { export var timezone: TimezoneJs; - export var Date: { - new (timezone?: string): TimezoneJsDate; - new (time: string, timezone?: string): TimezoneJsDate; - new (year?: number, month?: number, day?: number, hour?: number, minute?: number, second?: number, millisecond?: number, timezone?: string): TimezoneJsDate; - }; - - export interface TimezoneJsDate extends Date { + export class Date { + constructor(timezone?: string); + // Note due to naming conflict I have not found a way to introduce the constructor + // that takes a regular Date object. Instead, I defined it to take an Object. + constructor(date: Object, timezone?: string); + constructor(utcMillis: number, timezone?: string); + constructor(time: string, timezone?: string); + constructor(year?: number, month?: number, day?: number, hour?: number, minute?: number, second?: number, millisecond?: number, timezone?: string); setTimezone: (timezone: string) => void; + + // regular Date members + toString(): string; + toDateString(): string; + toTimeString(): string; + toLocaleString(): string; + toLocaleDateString(): string; + toLocaleTimeString(): string; + valueOf(): number; + getTime(): number; + getFullYear(): number; + getUTCFullYear(): number; + getMonth(): number; + getUTCMonth(): number; + getDate(): number; + getUTCDate(): number; + getDay(): number; + getUTCDay(): number; + getHours(): number; + getUTCHours(): number; + getMinutes(): number; + getUTCMinutes(): number; + getSeconds(): number; + getUTCSeconds(): number; + getMilliseconds(): number; + getUTCMilliseconds(): number; + getTimezoneOffset(): number; + setTime(time: number): number; + + // Note the setters have a non-void return type. Date has them as well, according to TypeScript + setMilliseconds(ms: number): number; + setUTCMilliseconds(ms: number): number; + setSeconds(sec: number, ms?: number): number; + setUTCSeconds(sec: number, ms?: number): number; + setMinutes(min: number, sec?: number, ms?: number): number; + setUTCMinutes(min: number, sec?: number, ms?: number): number; + setHours(hours: number, min?: number, sec?: number, ms?: number): number; + setUTCHours(hours: number, min?: number, sec?: number, ms?: number): number; + setDate(date: number): number; + setUTCDate(date: number): number; + setMonth(month: number, date?: number): number; + setUTCMonth(month: number, date?: number): number; + setFullYear(year: number, month?: number, date?: number): number; + setUTCFullYear(year: number, month?: number, date?: number): number; + toUTCString(): string; + toISOString(): string; + toJSON(key?: any): string; } + export interface TimezoneJs { zoneFileBasePath: string; - loadingScheme: TimezoneJsLoadingScheme; + loadingScheme: number; loadingSchemes: TimezoneJsLoadingSchemes; transport(opts: TimezoneJsOptions): any; @@ -35,12 +84,9 @@ declare module "timezone-js" { url?: string; } - export interface TimezoneJsLoadingScheme { - } - - export enum TimezoneJsLoadingSchemes { - PRELOAD_ALL, - LAZY_LOAD, - MANUAL_LOAD + export class TimezoneJsLoadingSchemes { + PRELOAD_ALL: number; + LAZY_LOAD: number; + MANUAL_LOAD: number; } }