オブジェクト型

オブジェクトリテラル

このエントリーをはてなブックマークに追加
最終更新日 2016-12-31

TypeScript では JavaScript と同様の書式でオブジェクトリテラルを使用することができます。

var foo = {
    version: "1.0",
    greet: function (lang) {
        return "Hello, " + lang;
    }
};

オブジェクトのプロパティにアクセスするためには、ドット記法かブラケット記法を使用します。

// ドット記法の場合
foo.version;
foo.greet("TypeScript");

// ブラケット記法の場合
foo["version"];
foo["greet"]("TypeScript");

in 演算子を使用すると、指定したプロパティがオブジェクトに含まれるかどうかを判別できます。

var result: boolean = ("version" in foo);

delete 演算子を使用すると、オブジェクトから指定したプロパティを削除できます。

result = ("version" in foo);  // result は true
delete foo.version;
result = ("version" in foo);  // result は false

アクセサ

TypeScript のオブジェクトリテラルは get/set アクセサをサポートします。

var foo = {
    _version: "1.0",
    get version(): string {
        return this._version;
    },
    set version(version: string) {
        this._version = version;
    }
};

var result: string = foo.version;
foo.version = "2.0";

オブジェクト型

オブジェクトリテラルの型はオブジェクト型です。TypeScript では、オブジェクトリテラルの他に、 クラス、インターフェイス、関数、モジュールによってもオブジェクト型が作成されます。

オブジェクト型はグローバルインターフェイス型 Object のメンバを含みます。

var foo = {
    version: "1.0",
    greet: function (lang: string): string {
        return "Hello, " + lang;
    }
};

// Object のメンバ toString() を呼び出す
foo.toString();