型推論

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

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

var result;  // var result: any; と同等

しかし、変数が初期化される場合、変数の型は、値の型に推論されます。次の例では、変数 result の型は Number 型に推論されます。

var result = 10;  // var result: number = 10; と同等

null や undefined で初期化した場合、変数の型は、Any 型に推論されます。

var result1 = null;       // var result1: any = null; と同等
var result2 = undefined;  // var result2: any = undefined; と同等

戻り値の型注釈を含まない関数宣言では、return による戻り値の型は Any 型となります。

function foo(x) {
    return x;
}
var result = foo(123);  // var result: any = foo(123); と同等

しかしながら、戻り値の型が推論される場合があります。次の例では、引数の型注釈によって戻り値 x の型は Number 型に推論されます。

function foo(x: number) {
    return x;
}
var result = foo(123);  // var result: number = foo(123); と同等

次の例では、戻り値が * 演算子によって結果が Number 型であることが保証されるため、 戻り値の型は Number 型に推論されます。

function foo(x) {
    return x * 2;
}
var result = foo(123);  // var result: number = foo(123); と同等