मान लीजिए कि लाइब्रेरी X के लिए एक टाइपिंग फ़ाइल है जिसमें कुछ इंटरफेस शामिल हैं।
interface I1 {
x: any;
}
interface I2 {
y: {
a: I1,
b: I1,
c: I1
}
z: any
}
इस पुस्तकालय के साथ काम करने के लिए मुझे एक वस्तु के आसपास से गुजरने की आवश्यकता होती है जो बिल्कुल उसी प्रकार की होती है जैसे कि I2.y
। मैं अपने स्रोत फ़ाइलों में समान इंटरफ़ेस बना सकता हूं:
interface MyInterface {
a: I1,
b: I1,
c: I1
}
let myVar: MyInterface;
लेकिन फिर मुझे पुस्तकालय से इसे अद्यतित रखने का भार मिलता है, इसके अलावा यह बहुत बड़ा हो सकता है और कोड दोहराव के परिणामस्वरूप बहुत अधिक हो सकता है।
इसलिए, क्या इंटरफ़ेस के इस विशिष्ट संपत्ति के प्रकार को "निकालने" का कोई तरीका है? कुछ इसी तरह let myVar: typeof I2.y
(जो काम नहीं करता है और "I2" त्रुटि का पता नहीं लगा सकता है)। अग्रिम में धन्यवाद।
संपादित करें : टीएस खेल के मैदान में थोड़ा खेलने के बाद मैंने देखा कि निम्नलिखित कोड वास्तव में वही हासिल करता है जो मैं चाहता हूं:
declare var x: I2;
let y: typeof x.y;
हालाँकि इसे x
घोषित करने के लिए एक अनावश्यक चर की आवश्यकता होती है । मैं उस घोषणा के बिना इसे हासिल करने का रास्ता तलाश रहा हूं।