2017-05-14 9 views
2

私は型指定された配列の予想されるタイプを知りたい:typescriptで予想される配列のメンバータイプを知ることは可能ですか?

let A1:string[] = [], 
    A2:Date[] = [], 
    expectedType = (arr:any[]) => { 
     console.log("Expecting: " + /*some magic*/); 
    }; 

expectedType(A1); // prints string 
expectedType(A2); // prints Date 

UPD:それは答えで述べていますとおり を、現在TSタイプdecalderアレイmemebersを知っている可能性がない、しかし、あなたが行うことができます

通常の配列のように動作するオブジェクトがありますが、メンバーの種類を取得して制御できるようになりました。

だから、私たちの例は次のようになります。これは便利かharmfullことができる方法についての

let A1:StrictArray = new StrictArray(string), 
    A2:StrictArray = new StrictArray(Date); 

    /*magic = */ 
    A1.expectedType.name; // prints string 
    A2.expectedType.name; // prints Date 

わからない、コメントを残してください。

+1

No.タイプのタイプは実行時にマニフェストではなく、出力コードから完全に消去されます。あなたは最小限のチェックを行うことができますが、それはJavaScriptの機能だけを使用しており、コンパイル時間のチェックにはほとんど直交しています。 –

答えて

0

typescriptで予想される配列のメンバータイプを知ることはできますか?

いいえ。型情報はJSにコンパイルする前に削除されるので、JSで持っているものを得ることができます。 JSスタイルのイントロスペクションを行うことができます。 typeof arr[0] === 'string'しかし、JavaScriptはかなり限られています。

関連する問題