型注釈

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

TypeScript で変数や関数を宣言する場合、型注釈を利用して明示的に型を指定することができます。 次に示すのは、型注釈を含む変数宣言の書式です。

var 変数名: 型名;

次に示すのは、型注釈を含む関数宣言の書式です。

function 関数名(引数名: 引数の型名): 戻り値の型名 {
    return 戻り値;
}

なお、TypeScript では、型注釈を含まない JavaScript と同様の書式も利用できます。

Number 型

Number 型は数値を表すプリミティブ型です。 Number 型の変数はキーワード number で宣言します。 数値リテラルは Number 型変数の値として使用できます。

var result: number;
result = 10;
result = 123.456;

Boolean 型

Boolean 型はブール値を表すプリミティブ型です。 Boolean 型の変数はキーワード boolean で宣言します。 true リテラルと false リテラルは Boolean 型変数の値として使用できます。

var result: boolean;
result = true;
result = false;

String 型

String 型は UTF-16 文字列値を表すプリミティブ型です。 String 型の変数はキーワード string で宣言します。 文字列リテラルは String 型変数の値として使用できます。

var result: string;
result = "TypeScript";
result = "";

Null 型

Null 型は null リテラルの型を表すプリミティブ型です。 Null 型の変数を宣言するキーワードはありません。 null リテラルは他の型の変数の値として使用できます。

var result: number;
result = null;

Undefined 型

Undefined 型は undefined リテラルの型を表すプリミティブ型です。 Undefined 型の変数を宣言するキーワードはありません。 undefined リテラルは他の型の変数の値として使用できます。 undefined リテラルは値が定義されていない変数の値を表します。

var result: number;  // 値が定義されていないので result の値は undefined
result = undefined;  // 明示的に変数に undefined を代入することもできる

Void 型

Void 型は関数が値を返さないことを表すプリミティブ型です。 戻り値が Void 型の関数はキーワード void で宣言します。

function foo(x: number): void {

}

Any 型

Any 型はすべての型の最上位型で、JavaScript の値を表します。そのため静的な型チェックは行われません。 Any 型の変数はキーワード any で宣言します。

var result: any;
result = 10;
result = true;
result = "TypeScript";
result = null;
result = undefined;

型注釈を含まない変数宣言の場合、変数の型は Any 型となります。

var result;

配列

配列リテラルの型は、要素の型名に [ ] を指定します。

var result: number[];
result = [1, 2];

列挙型

列挙型を宣言するためにはキーワード enum を使用します。次に示すのは列挙型の例です。

enum Style {
    None = 0,
    Bold = 1,
    Italic = 2
}
var result: Style;
result = Style.Bold;

上記の例では列挙型のメンバに数値リテラルを割り当てていますが、省略することもできます。 省略した場合は 1 番目のメンバには自動的に 0 が割り当てられ、 2 番目以降には 1 つ前の値に 1 加算した値が割り当てられます。 次に示すのは数値リテラルを省略する例です。

enum Style {
    None,      // None = 0
    Bold,      // Bold = 1
    Italic     // Italic = 2
}

列挙型のメンバには計算した値を割り当てることもできます。 次に示すのはビット演算の結果を割り当てる例です。

enum Style {
    None = 0,
    Bold = 1,
    Italic = 2,
    Underline = 4,
    Hyperlink = Style.Bold | Style.Underline
}

列挙型は、数値インデックスによってメンバを文字列として取得することができます。

Style[1];  // "Bold"

なお、同じ名前の列挙型を宣言した場合は、それぞれのメンバがマージされます。

enum Style {
    None = 0,
    Bold = 1,
    Italic = 2
}
enum Style {
    Underline = 4,
    Hyperlink = Style.Bold | Style.Underline
}