2016-10-08 17 views
0

typescriptに無名プロパティがあるのか​​、それとも実現できるのかしらと思っていました。たとえば、私はTクラスのオブジェクトを持っています。無名のプロパティ

class T { 
    Key:any; 
    Value:any; 
} 

私はTオブジェクトの配列をとり、それらをFormDataオブジェクトに解析する別の関数を使うことができます。そこのパターンではありません、と私は関数を呼び出すたびので、私はちょうどのような2つの文字列値を入力することができればそれは多くのクリーナーを見て、より効率的である

let array = [ 
       {Key:"id",Value: "2"}, 
       {Key:"email",Value: "generic"}, 
       {Key:"type",Value:"Food"}, 
       {Key:"name",Value: "someName"} 
       ....... 
]; 

すべてのオブジェクトにキーと値を入力する必要がいますだから

let array = [ 
       {"id","2"}, 
       {"email","generic"}, 
       {"type","Food"}, 
       {"name","someName"} 
       ....... 
]; 

これはどのようにすれば達成できますか?

+0

'.map()'を使ってプロパティ名を追加することができます。 – Jecoms

+0

お願いしますか? – John

+0

これはタイスクリプトの答えではありませんが、 'map'配列関数は配列の各要素を別のものに変換することを可能にします。バニラ配列を入力として取り、キー/値ペアオブジェクトの配列を出力することができます。 – Jecoms

答えて

0

これを実現するにはtuple typesArray.mapを使用できます。

let content = [ 
    ["id","2"], 
    ["email","generic"], 
    ["type","Food"], 
    ["name","someName"] 
]; 

let finalArray = content.map(([Key, Value]) => ({Key, Value})); 

ここでタプル型を使用することの利点は、あなたのコンテンツの仕様が行に2つの未満の要素を持っている場合、それはコンパイルエラーを引き起こすということです。

.mapコールでは、私はtypescriptのdestructuringとフィールドのペニング機能を使用しています。

+0

すべてのドキュメントリンクを含めるようにしましたが、o_Oのどこにでも罰金を科すためのドキュメントが見つからないようです。おそらく、私はいくつかを書く必要があります...とにかく、それはちょうど良いコンパイル。 – Paarth

関連する問題