1. ホーム
  2. typescript

[解決済み] TypeScriptのオブジェクトリテラルでの型定義

2022-03-20 01:25:21

質問

TypeScriptのクラスでは、プロパティに型を宣言することなどが可能です。

class className {
  property: string;
};

オブジェクト・リテラルでプロパティの型を宣言するには?

次のようなコードを試しましたが、コンパイルできません。

var obj = {
  property: string;
};

次のようなエラーが発生します。

名前 'string' は現在のスコープに存在しません。

私のやり方が悪いのか、それともバグなのでしょうか?

解決方法は?

あと少しです。 =: . オブジェクト型リテラル(仕様書3.5.3項参照)またはインターフェイスを使用することができます。オブジェクト型リテラルを使用するのが近いです。

var obj: { property: string; } = { property: "foo" };

しかし、インターフェイスを使用することもできます

interface MyObjLayout {
    property: string;
}

var obj: MyObjLayout = { property: "foo" };