मेरे पास कुछ टाइपस्क्रिप्ट कोड है, और मैं कुछ मेटाप्रोग्रामिंग कर रहा हूं जहां मुझे instance.func.name
तक पहुंचने में सक्षम होना चाहिए, हालांकि टाइपस्क्रिप्ट संकलित जेएस में फ़ंक्शन नाम को छोड़ देता है।टाइपस्क्रिप्ट फ़ंक्शन नाम प्रदान नहीं कर रहा है
टाइपप्रति:
class ClassName {
// ...
func(): ReturnType {
// ...
}
}
संकलित जावास्क्रिप्ट:
// ...
ClassName.prototype.func = function() {
// ...
};
वांछित जावास्क्रिप्ट:
ClassName.prototype.func = function func() {
// ... ^^^^
};
वहाँ एक संकलक विकल्प मैं याद कर रहा हूँ, या एक कीवर्ड मैं में उपयोग कर सकते हैं है इसे पूरा करने के लिए टाइपस्क्रिप्ट?
function named(target: any, key: string) {
target[key].functionName = key;
}
class ClassName {
// ...
@named
func(): ReturnType {
// ...
}
}
फिर instance.func.functionName
का उपयोग:
बहुत चालाक समाधान – robsonrosa