1

組み込みオブジェクトDateの代わりにDatejsを使用するようにTypeScriptにどのように指示しますか?Date

jsファイルへの参照を追加し、日付をタイプとして宣言しようとしましたanydeclare var Date: any;、エラーを修正するために何もしませんでした。

編集: 私はこの質問を見つけました、しかしそれは含める方法を指定することについて話します。オープンエンドのままにして、日付の型チェックをオフにすることは可能かどうか疑問に思っています。

4

3 に答える 3

7

ネイティブ日付の延長を開始するには、次のようになります。

interface DateIs {
    monday(): bool;
    // ctd...
    january(): bool;
    // ctd...
    weekday(): bool;
}

interface DateAdd {
    days(): Date;
    months(): Date;
    // ctd...
}

interface Date {
    parse(date: string): Date;
    today(): Date;
    next(): Date;
    last(): Date;
    monday(): Date;
    // ctd...
    january(): Date;
    // ctd...
    addDays(days: number): Date;
    addMonths(months: number): Date;
    add(quantity: number): DateAdd;
    is(): DateIs;
}

この例では、使用する関数を追加し続けることができます。例として 1 か月を入れたので、february() と短い jan() のバリエーションを必要に応じて記入できます。

于 2013-01-14T22:46:24.170 に答える
6

Dateある型 (この場合) を持つ既存の変数を取得し、それを に変換する方法はありませんany

最良のオプションはDate、datejs の新しいメソッドを使用してインターフェイスを拡張することです。うまくいけば、誰かがこれを行い、それをFixedTypedにアップロードします。

あなたができる2つの回避策:

var Date2 = <any>Date;
// Use Date2 anywhere you would use Date

他の回避策は、としてlib.d.ts宣言するように変更することです。明らかに、これはどこにでも副作用がありますが、うまくいくでしょう。Dateany

于 2013-01-14T22:07:59.240 に答える
1

nuget からパッケージ「datejs.typescript.Definitivelytyped」をインストールします

http://www.nuget.org/packages/datejs.TypeScript.DefinitelyTyped/

タイプ ファイルへの参照を追加します。以下のコードに示すように、グローバル スクリプト ファイルでグローバル変数を宣言するか、クラスでプライベート スタティック メンバー変数または単にローカル変数を宣言します。

/// <reference path="typings/datejs/datejs.d.ts" />
var DateJs: IDateJSStatic = <any>Date;

私は現在 SPA アプリケーションを作成しているので、コード例に示すようにグローバル変数を使用します。

于 2014-10-16T14:03:40.510 に答える