Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Typescript Date Type?

How do I express dates in TypeScript? Dates aren't a TypeScript type, so do I use any or object? Seems like there would be a "right" way to do:

let myDate: any = new Date(); 

I couldn't find much on Google, despite it being such a simple question.

like image 327
VSO Avatar asked Aug 03 '17 13:08

VSO


People also ask

Is there a date type in TypeScript?

The Date object represents a date and time functionality in TypeScript. It allows us to get or set the year, month and day, hour, minute, second, and millisecond.

How do I create a Date datatype in TypeScript?

Use the Date type to type a Date object in TypeScript, e.g. const date: Date = new Date() . The Date() constructor returns an object that has a type of Date . The interface defines typings for all of the built-in methods on the Date object. Copied!

How do I return a Date in TypeScript?

Date. getDate - returns an integer between 1 and 31 representing the day of the month for a specific date. Date. getHours - returns the hour for the specified date.

Is Date a string in TypeScript?

In one of my recent projects, I had to deal with multiple custom representations of dates as strings, like YYYY-MM-DD and YYYYMMDD . Since those dates are string variables, TypeScript infers the string type by default.


2 Answers

The type is Date:

const d: Date = new Date(); // but the type can also be inferred from "new Date()" already 

It is the same as with every other object instance :)

like image 150
str Avatar answered Oct 04 '22 01:10

str


Every class or interface can be used as a type in TypeScript.

 const date = new Date(); 

will already know about the date type definition as Date is an internal TypeScript object referenced by the DateConstructor interface.

And for the constructor you used, it is defined as:

interface DateConstructor {     new(): Date;     ... } 

To make it more explicit, you can use:

 const date: Date = new Date(); 

You might be missing the type definitions though, the Date is coming for my example from the ES6 lib, and in my tsconfig.json I have defined:

"compilerOptions": {     "target": "ES6",     "lib": [         "es6",         "dom"     ], 

You might adapt these settings to target your wanted version of JavaScript.


The Date is by the way an Interface from lib.es6.d.ts:

/** Enables basic storage and retrieval of dates and times. */ interface Date {     /** Returns a string representation of a date. The format of the string depends on the locale. */     toString(): string;     /** Returns a date as a string value. */     toDateString(): string;     /** Returns a time as a string value. */     toTimeString(): string;     /** Returns a value as a string value appropriate to the host environment's current locale. */     toLocaleString(): string;     /** Returns a date as a string value appropriate to the host environment's current locale. */     toLocaleDateString(): string;     /** Returns a time as a string value appropriate to the host environment's current locale. */     toLocaleTimeString(): string;     /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */     valueOf(): number;     /** Gets the time value in milliseconds. */     getTime(): number;     /** Gets the year, using local time. */     getFullYear(): number;     /** Gets the year using Universal Coordinated Time (UTC). */     getUTCFullYear(): number;     /** Gets the month, using local time. */     getMonth(): number;     /** Gets the month of a Date object using Universal Coordinated Time (UTC). */     getUTCMonth(): number;     /** Gets the day-of-the-month, using local time. */     getDate(): number;     /** Gets the day-of-the-month, using Universal Coordinated Time (UTC). */     getUTCDate(): number;     /** Gets the day of the week, using local time. */     getDay(): number;     /** Gets the day of the week using Universal Coordinated Time (UTC). */     getUTCDay(): number;     /** Gets the hours in a date, using local time. */     getHours(): number;     /** Gets the hours value in a Date object using Universal Coordinated Time (UTC). */     getUTCHours(): number;     /** Gets the minutes of a Date object, using local time. */     getMinutes(): number;     /** Gets the minutes of a Date object using Universal Coordinated Time (UTC). */     getUTCMinutes(): number;     /** Gets the seconds of a Date object, using local time. */     getSeconds(): number;     /** Gets the seconds of a Date object using Universal Coordinated Time (UTC). */     getUTCSeconds(): number;     /** Gets the milliseconds of a Date, using local time. */     getMilliseconds(): number;     /** Gets the milliseconds of a Date object using Universal Coordinated Time (UTC). */     getUTCMilliseconds(): number;     /** Gets the difference in minutes between the time on the local computer and Universal Coordinated Time (UTC). */     getTimezoneOffset(): number;     /**       * Sets the date and time value in the Date object.       * @param time A numeric value representing the number of elapsed milliseconds since midnight, January 1, 1970 GMT.       */     setTime(time: number): number;     /**       * Sets the milliseconds value in the Date object using local time.       * @param ms A numeric value equal to the millisecond value.       */     setMilliseconds(ms: number): number;     /**       * Sets the milliseconds value in the Date object using Universal Coordinated Time (UTC).       * @param ms A numeric value equal to the millisecond value.       */     setUTCMilliseconds(ms: number): number;      /**       * Sets the seconds value in the Date object using local time.       * @param sec A numeric value equal to the seconds value.       * @param ms A numeric value equal to the milliseconds value.       */     setSeconds(sec: number, ms?: number): number;     /**       * Sets the seconds value in the Date object using Universal Coordinated Time (UTC).       * @param sec A numeric value equal to the seconds value.       * @param ms A numeric value equal to the milliseconds value.       */     setUTCSeconds(sec: number, ms?: number): number;     /**       * Sets the minutes value in the Date object using local time.       * @param min A numeric value equal to the minutes value.       * @param sec A numeric value equal to the seconds value.       * @param ms A numeric value equal to the milliseconds value.       */     setMinutes(min: number, sec?: number, ms?: number): number;     /**       * Sets the minutes value in the Date object using Universal Coordinated Time (UTC).       * @param min A numeric value equal to the minutes value.       * @param sec A numeric value equal to the seconds value.       * @param ms A numeric value equal to the milliseconds value.       */     setUTCMinutes(min: number, sec?: number, ms?: number): number;     /**       * Sets the hour value in the Date object using local time.       * @param hours A numeric value equal to the hours value.       * @param min A numeric value equal to the minutes value.       * @param sec A numeric value equal to the seconds value.       * @param ms A numeric value equal to the milliseconds value.       */     setHours(hours: number, min?: number, sec?: number, ms?: number): number;     /**       * Sets the hours value in the Date object using Universal Coordinated Time (UTC).       * @param hours A numeric value equal to the hours value.       * @param min A numeric value equal to the minutes value.       * @param sec A numeric value equal to the seconds value.       * @param ms A numeric value equal to the milliseconds value.       */     setUTCHours(hours: number, min?: number, sec?: number, ms?: number): number;     /**       * Sets the numeric day-of-the-month value of the Date object using local time.       * @param date A numeric value equal to the day of the month.       */     setDate(date: number): number;     /**       * Sets the numeric day of the month in the Date object using Universal Coordinated Time (UTC).       * @param date A numeric value equal to the day of the month.       */     setUTCDate(date: number): number;     /**       * Sets the month value in the Date object using local time.       * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.       * @param date A numeric value representing the day of the month. If this value is not supplied, the value from a call to the getDate method is used.       */     setMonth(month: number, date?: number): number;     /**       * Sets the month value in the Date object using Universal Coordinated Time (UTC).       * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.       * @param date A numeric value representing the day of the month. If it is not supplied, the value from a call to the getUTCDate method is used.       */     setUTCMonth(month: number, date?: number): number;     /**       * Sets the year of the Date object using local time.       * @param year A numeric value for the year.       * @param month A zero-based numeric value for the month (0 for January, 11 for December). Must be specified if numDate is specified.       * @param date A numeric value equal for the day of the month.       */     setFullYear(year: number, month?: number, date?: number): number;     /**       * Sets the year value in the Date object using Universal Coordinated Time (UTC).       * @param year A numeric value equal to the year.       * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. Must be supplied if numDate is supplied.       * @param date A numeric value equal to the day of the month.       */     setUTCFullYear(year: number, month?: number, date?: number): number;     /** Returns a date converted to a string using Universal Coordinated Time (UTC). */     toUTCString(): string;     /** Returns a date as a string value in ISO format. */     toISOString(): string;     /** Used by the JSON.stringify method to enable the transformation of an object's data for JavaScript Object Notation (JSON) serialization. */     toJSON(key?: any): string; } 
like image 32
k0pernikus Avatar answered Oct 03 '22 23:10

k0pernikus