Yazı Tipi Tarih Türü?


218

TypeScript'te tarihleri ​​nasıl ifade edebilirim? Tarihler bir TypeScript türü değildir , bu yüzden anyveya object? Görünüşe göre "doğru" bir yol olurdu:

let myDate: any = new Date();

Bu kadar basit bir soru olmasına rağmen Google'da fazla bir şey bulamadım.


4
JS tipleri TS'de çalışır.
Amy

3
Arabirim ve Sınıfları tür olarak kullanabilirsiniz.
Murat Karagöz

Yanıtlar:


279

Cevap çok basit, türü Date:

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

Diğer her nesne örneğiyle aynıdır :)


Set adı nedir typeso içerir Dateyanı sıra Basic TypesOP başvurulan? Uzatma yöntemleri için bir modül adlandırıyorum.
ttugates

2
@ttugates Örneğin sendika türleri mi demek istediniz string | number | boolean | null | undefined | symbol | Date? Tekrardan kaçınmak için bir tür takma adı kullanabilirsiniz.
str

Oh hayır. Kapsamından emin değilim. Ama kabaca .Net systemtürlerine benzemek . Bkz. Standart Yerleşik nesneler . Daha özlü olarak kullanılan bir isim var mı?
ttugates

@ttugates İlkel türleri ve tarih nesnelerini birlikte gruplandırmak benim için oldukça keyfi görünüyor. JavaScript'te bunun için yaygın olarak kullanılan bir isim olduğunu sanmıyorum. Ayrıca, asıl soru takip eden sorunuzla ilgili değildir. Bunun yerine yeni bir tane sormalısınız.
str

1
"Diğer her nesne örneğiyle aynıdır :)" Bu tam olarak doğru değildir. string,, numberve booleanTypescript'teki tüm küçük kullanıcı türleri, bu nedenle bir datetürün var olmasını bekleyebiliriz, ancak kullanmaya çalıştıklarında hata alırlar. (en azından beni bu sayfaya getiren şey buydu)
Kip

82

Her sınıf veya arabirim TypeScript'te bir tür olarak kullanılabilir.

 const date = new Date();

DateConstructor arabirimi tarafından başvurulan dahili bir TypeScript nesnesi dateolarak tür tanımı hakkında zaten bilgi sahibi olacaktır Date.

Kullandığınız kurucu için şu şekilde tanımlanır:

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

Daha açık hale getirmek için şunları kullanabilirsiniz:

 const date: Date = new Date();

Tip tanımlarını kaçırıyor olabilirsiniz Date, ES6 lib'den örneğim için geliyor ve benim tsconfig.jsontanımladım:

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

Bu ayarları, istediğiniz JavaScript sürümünü hedefleyecek şekilde uyarlayabilirsiniz.


Tarih bu arada bir Arayüzdür 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
yeni Tarih () şimdiki veya şimdiki tarihle zaten aynı. Zaten başlatılmış nesne olan bir şeyi bildirmeye gerek yoktur.
Thiago de Oliveira Cruz

15

Typcript, tıpkı bir sayı, dize veya özel tipte yaptığınız gibi Tarih arayüzünü kutudan çıkarır. Yani sadece kullanın:

myDate : Date;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.