1. ホーム
  2. typescript

[解決済み] TypeScriptのインターフェイスで静的プロパティを定義する方法

2022-04-21 03:51:56

質問

を宣言したいだけです。 タイプスクリプトの静的プロパティ インターフェイスは?私はこれに関してどこにも見つかりませんでした。

interface myInterface {
  static Name:string;
}

可能でしょうか?

どのように解決するのですか?

TypeScriptでは、インターフェイスにstaticプロパティを定義することができません。

を変更したいとします。 Date オブジェクトの定義に追加するのではなく、むしろ Date をラップするか、あるいは単にリッチな日付クラスを作成して Date はできない。

class RichDate {
    public static MinValue = new Date();
}

TypeScriptではDateはインターフェースなので、クラスで拡張することはできない。 extends キーワードは、日付がクラスであれば良い解決策になるのですが、少し残念です。

もし、Dateオブジェクトを拡張して MinValue プロパティをプロトタイプに追加することができます。

interface Date {
    MinValue: Date;
}

Date.prototype.MinValue = new Date(0);

を使って呼び出される。

var x = new Date();
console.log(x.MinValue);

また、インスタンスなしで利用できるようにしたい場合も可能です...が、ちょっと面倒ですね。

interface DateStatic extends Date {
    MinValue: Date;
}

Date['MinValue'] = new Date(0);

を使って呼び出される。

var x: DateStatic = <any>Date; // We aren't using an instance
console.log(x.MinValue);