सूचकांक हस्ताक्षर पहचानकर्ता क्या करता है?टाइपस्क्रिप्ट में, इंडेक्स हस्ताक्षर पहचानकर्ता क्या है?
interface IIndex {
[something: string]: any;
}
कोई भी "कुछ" फिर से उपयोग करेगा?
interface IIndex {
[string]: any;
}
सूचकांक हस्ताक्षर पहचानकर्ता क्या करता है?टाइपस्क्रिप्ट में, इंडेक्स हस्ताक्षर पहचानकर्ता क्या है?
interface IIndex {
[something: string]: any;
}
कोई भी "कुछ" फिर से उपयोग करेगा?
interface IIndex {
[string]: any;
}
मेरा अनुमान होगा कि इस स्थिरता और जावास्क्रिप्ट से निकटता के कारणों के लिए है:
या दूसरे शब्दों में, क्यों सिर्फ सिंटैक्स नहीं है।
वैसे ही जैसे यह आपके विधि तर्क नाम के लिए आम है (इंटरफेस में भी), टीएस में तरीकों, कंस्ट्रक्टर्स, कार्यों और indexers के लिए सभी तर्कों प्रारूप name: type
या name
(name: any
अर्थ) का होना चाहिए। (कहानी का संस्करण सरलीकृत लेकिन मुझे यकीन है कि तुम मुझे मिल हूँ)
के बाद से नाम और प्रकार टाइपप्रति में विभिन्न नामस्थान में रहते हैं, प्रपत्र string
का एक तर्क अस्पष्ट होगा। याद रखें कि टाइपस्क्रिप्ट का लक्ष्य जावास्क्रिप्ट के करीब रहने के लिए है, इसलिए उपरोक्त को string
के तर्क के रूप में व्याख्या करना अस्वीकार्य होगा, और यह वास्तव में string: any
के बराबर है।
इसके अलावा, indexers एक अपवाद हो सकता है, जबकि, क्योंकि वे केवल प्रकार string
या number
का हो सकता है, यह हमेशा मामला किया गया है (टीएस 0.8 any
अनुमति), इसलिए एक और कारण 0.9 के लिए प्रवास की सुविधा के लिए हो सकता है।
मुझे लगता है कि "कुछ" दस्तावेज़ केवल इसके प्रकार के बजाय शब्दकोश को खोजने के लिए वास्तविक कुंजी दस्तावेज करता है। हालांकि, "कुंजी" का एक डिफ़ॉल्ट नाम शायद 99% स्थितियों में काम करना चाहिए ... कुछ मामले हैं (उदा। '' [StyleName: string]: string'') जहां एक कस्टम नाम अधिक दस्तावेज उत्पन्न कर सकता है। –