मैं टाइपस्क्रिप्ट के लिए बिल्कुल नया हूं, और मेरी दो कक्षाएं हैं। मूल कक्षा में मेरे पास है:
abstract class Component {
public deps: any = {};
public props: any = {};
public setProp(prop: string): any {
return <T>(val: T): T => {
this.props[prop] = val;
return val;
};
}
}
मेरे पास बच्चे की कक्षा में:
class Post extends Component {
public toggleBody: string;
constructor() {
this.toggleBody = this.setProp('showFullBody');
}
public showMore(): boolean {
return this.toggleBody(true);
}
public showLess(): boolean {
return this.toggleBody(false);
}
}
ShowMore और ShowLess दोनों मुझे त्रुटि देते हैं, "एक अभिव्यक्ति को आमंत्रित नहीं कर सकता है जिसके प्रकार में कॉल हस्ताक्षर की कमी है।"
लेकिन जो फ़ंक्शन सेट करता है, वह रिटर्न करता है, मेरे पास एक कॉल हस्ताक्षर है, मुझे लगता है? मुझे लगता है कि मैं कार्यों के टाइपिंग के बारे में कुछ महत्वपूर्ण गलत समझ रहा हूं, लेकिन मुझे नहीं पता कि यह क्या है।
धन्यवाद!
<T>(val: T) => T
togglrBodyएक तार नहीं होना चाहिए, क्योंकि आप चाहते हैं कि यह एक समारोह हो