मैं एक उप संपत्ति first
कि Name
इंटरफ़ेस में परिभाषित किया गया है स्थापित करने के लिए कोशिश कर रहा हूँ, लेकिन जब ऐसा मैं हमेशा उदाहरण के लिए कोई त्रुटि मिलती है की 'पहली' सेट नहीं कर सकता:टाइपप्रति में ठीक करने का तरीका गुण अपरिभाषित
interface Name{
first: string,
last:string,
}
class Person{
private name:Name
public setName(firstName, lastName){
this.name.first = firstName;
this.name.last = lastName;
}
}
var person1 = new Person();
person1.setName('Tracy','Herrera');
जब यह चल रहा है मैं त्रुटि मिलती है: Cannot set property 'first' of undefined
किसी भी एक एक विचार यह बाहर काम करने के लिए है?
तेज प्रतिक्रिया के लिए धन्यवाद, लेकिन इसके साथ समस्या यह है कि मेरे पास एक बहुत बड़ी वस्तु है और इसे इस तरह से करने से इसे आसानी से पठनीय नहीं किया जाता है जब यह केवल दो होता है। कोई सुझाव? –
यह बहुत अच्छा है, लेकिन जब आपके पास एक एकल स्तर ऑब्जेक्ट होता है तो यह ठीक काम करेगा, लेकिन जब ऑब्जेक्ट 'var info = {name: {first: "someName" की तरह गहरा होता है, अंतिम: "someLastName"}}' मुझे चाहिए 'info.name = {} 'जैसे प्रत्येक स्तर को init करने के लिए और फिर' पहले' और 'अंतिम' –