2016-08-29 4 views
10

में टाइप मैं संचित डेटा को जो इस तरह दिखना चाहिए स्टोर करने के लिए एक वस्तु है:कैसे वस्तुओं की वस्तु को परिभाषित करने के टाइपप्रति

private data = { 
    'some_thing': new DataModel(), 
    'another_name': new DataModel() 
} 

मैं निर्माता में इसे करने के लिए एक खाली वस्तु आवंटित करने के लिए कोशिश कर रहा हूँ:

this.data = {}; // produces build error 

असल में, मुझे "डेटा" फ़ील्ड के प्रकार को परिभाषित करने की आवश्यकता है ताकि यह कह सकें कि इसमें यादृच्छिक नाम और डेटामोडेल प्रकार के मान हैं। मैंने ऐसा करने की कोशिश की है:

private data: Object<DataModel> 

लेकिन यह अमान्य है। मैं सही प्रकार कैसे निर्दिष्ट करूं?

उत्तर

34

यह होना चाहिए:

private data: { [name: string]: DataModel }; 

और फिर यह काम करना चाहिए:

this.data = {}; 
+0

काम किया - धन्यवाद! – marius

+0

इच्छा है कि मैं इसे दस लाख वोट दें! धन्यवाद दोस्त! – Encoder

संबंधित मुद्दे