타이프 스크립트 날짜 유형?


218

TypeScript에서 날짜를 어떻게 표현합니까? 날짜는 TypeScript 유형 이 아니므로 any또는을 사용 object합니까? "올바른"방법이있는 것 같습니다 :

let myDate: any = new Date();

간단한 질문이지만 Google에서 많이 찾을 수 없었습니다.


4
JS 유형은 TS에서 작동합니다.
Amy

3
인터페이스와 클래스를 유형으로 사용할 수 있습니다.
Murat Karagöz

답변:


279

대답은 매우 간단합니다. 유형은 Date다음과 같습니다.

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

다른 모든 객체 인스턴스와 동일합니다. :)


OP에서 참조 할뿐만 아니라 types포함 된 세트의 이름은 무엇입니까 ? 확장 방법에 대한 모듈의 이름을 지정하고 있습니다. DateBasic Types
tutugates

2
@ttugates 예를 들어 유니온 타입 을 의미 string | number | boolean | null | undefined | symbol | Date합니까? 반복을 피하기 위해 타입 별칭 을 사용할 수 있습니다 .
str

아뇨 범위는 확실하지 않습니다. 그러나 smth는 .Net system유형 과 거의 유사합니다 . 표준 내장 객체를 참조하십시오 . 더 간결하게 널리 사용되는 이름이 있습니까?
tutugates

@ttugates 기본 유형과 날짜 객체를 그룹화하면 나에게 임의적입니다. JavaScript에는 널리 사용되는 이름이 없다고 생각합니다. 또한 원래 질문은 후속 질문과 관련이 없습니다. 대신 새로운 것을 요청해야합니다.
str

1
"다른 모든 객체 인스턴스와 동일합니다 :)"이것은 사실이 아닙니다. string, numberbooleanTypescript의 모든 사용자 소문자 유형이므로 유형이 합리적 date으로 존재할 것으로 예상 할 수 있지만 사용하려고 할 때 오류가 발생합니다. (적어도 그것이 저를이 페이지로 안내했습니다)
Kip

82

모든 클래스 또는 인터페이스는 TypeScript에서 유형으로 사용할 수 있습니다.

 const date = new Date();

DateConstructor 인터페이스에서 참조하는 내부 TypeScript 객체 date와 마찬가지로 유형 정의 에 대해 이미 알고 Date있습니다.

그리고 사용한 생성자에 대해 다음과 같이 정의됩니다.

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

더 명확하게하기 위해 다음을 사용할 수 있습니다.

 const date: Date = new Date();

그러나 유형 정의가 누락되었을 수 있습니다 Date. ES6 라이브러리에서 예제가 나오고 tsconfig.json있습니다.

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

원하는 JavaScript 버전을 대상으로이 설정을 조정할 수 있습니다.


날짜는 인터페이스의 방법입니다 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;
}

2
new Date ()는 이미 현재 또는 현재 날짜와 동일합니다. 이미 초기화 된 객체 인 것을 선언 할 필요가 없습니다.
Thiago de Oliveira Cruz

15

Typescript는 숫자, 문자열 또는 사용자 정의 유형과 마찬가지로 날짜 인터페이스를 즉시 인식합니다. 따라서 다음을 사용하십시오.

myDate : Date;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.