2016-08-09 9 views
0

変数に渡される変数(数値の配列またはタプルの配列のいずれか)がタプルの配列であるかどうかを確認しようとしています。変数がTypeScriptのタプルであるかどうかをチェックする方法

function (times: Array<number> | Array<[number, number]>) { 
    if (times[0] instanceof [number, number]) { 
     console.log("Its the tuple one!"); 
    } 
} 

上記のコードは、しかし動作しませんし、私もif (times[0] instanceof tuple))を試みたが、それはどちらか動作しません。これはどうすればできますか?

ありがとうございます! Basic Types > Tupleドキュメントによれば

答えて

2

タプルタイプを使用すると、要素の固定 数の種類が知られている配列を発現することができるように、同じである必要はありません。

タプルが単なる配列であることを意味します。
また、typescriptはjavascriptにコンパイルされ、javascriptにはタプルがないため、実行時に型をチェックすると、実行時に存在しないタイプではなくjavascript型に対してチェックする必要があります。

function fn(times: Array<number> | Array<[number, number]>) { 
    if (times[0] instanceof Array) { 
     console.log("Its the tuple one!"); 
    } 
} 

は、あなたの質問に答えるために

関連する問題