2016-08-02 8 views
1

私はtypescriptで "コレクション"(実際にはこのパラダイムとは何ですか?)を使用しようとしており、強く型付けしています。 JavaScriptで私はこのようなものを書くだろう。強く型付きの型コピーコレクション

var array = [1,2,3,4]; 
var collection = {}; 

for(var x in array){ 
    collection['item-'+x] = x; 
} 

は私がオブジェクトを持っている、と私は、このcollection[name]構文を使用して要素を削除/追加します。

私はインデックスについて気にする必要はないので、これは素晴らしいことです。 今ではtypescriptで配列を作るときにそれを宣言して型を与えることができます。

これは、このコレクションの構文とどのように等しくなりますか?たとえば、私はこのようなコレクションを持っています。

var days = {}; 

days[moment().day('monday')] = new dayType('Monday'); 
days[moment().day('tuesday')] = new dayType('Tuesday'); 

これは素晴らしい作品が、私は私のコレクションdays[moment().day('monday')].Nameにアクセスする場合には、実際に私のdayTypeクラスまたはそれにNameプロパティを持つだけのオブジェクトである場合、私は知りません。プロパティー名と同じこと。私はdays['July']: = false;を追加することはできますが、それは私のオブジェクトの文脈では意味をなさないが。

これはtypeScriptに適合しない単なるパラダイムですか?

このパラダイムとは何ですか?

これを行うには良い方法がありますか?

+1

が重複する可能性を/stackoverflow.com/questions/13631557/typescript-objects-as-dictionary-types-as-in-c-sharp) –

答えて

2

ここで使用している構造は辞書のようです。次のことを試してみてください。

var days : { [key: string]: dayType; } = {}; 

days[moment().day('monday')] = new dayType('Monday'); 

また、速記のためのインターフェースを使用することができます。

interface dayDictionary { 
    [key: string]: dayType; 
} 

var days: dayDictionary = { }; 

参照:/:[活字体は、C#でのほど辞書の種類をオブジェクト](HTTPのTypeScript Objects as Dictionary types as in C#

+0

ありがとう!インターフェイスは完全に動作しますが、これからはこれを使用する必要があります。 – Devcon

関連する問題