मैं टाइपप्रति में निम्नलिखित श्रेणियां होती हैं:टाइपस्क्रिप्ट में सरणी को प्रारंभ करने, आरंभ करने और पॉप्युलेट करने के लिए कैसे करें?
class bar {
length: number;
}
class foo {
bars: bar[] = new Array();
}
और फिर मैं है:
var ham = new foo();
ham.bars = [
new bar() { // <-- compiler says Expected "]" and Expected ";"
length = 1
}
];
वहाँ टाइपप्रति में ऐसा करने के लिए कोई तरीका है?
अद्यतन
मैं ही वापस जाने के लिए एक सेट विधि होने से एक और समाधान के साथ आया था:
class bar {
length: number;
private ht: number;
height(h: number): bar {
this.ht = h; return this;
}
constructor(len: number) {
this.length = len;
}
}
class foo {
bars: bar[] = new Array();
setBars(items: bar[]) {
this.bars = items;
return this;
}
}
ताकि आप इसे नीचे के रूप में प्रारंभ कर सकते हैं:
var ham = new foo();
ham.setBars(
[
new bar(1).height(2),
new bar(3)
]);
सी # के समान टाइपस्क्रिप्ट में ऑब्जेक्ट प्रारंभकर्ता होने के लिए वास्तव में उपयोगी होगा। '[{लंबाई: 1}]' बार का उदाहरण नहीं है लेकिन अगर समर्थित है, तो 'नया बार() {length = 1}' बार का उदाहरण होगा। शायद हमें इसके लिए एक फीचर सुझाव देना चाहिए? – orad