tsc · बिल्ड और टाइप
संदेश
error TS7006: Parameter 'req' implicitly has an 'any' type.
इसका मतलब
उस parameter पर कोई type लिखा नहीं है और tsc के पास अनुमान लगाने का आधार भी नहीं था, इसलिए वह अंतर्निहित रूप से any बन गया — और noImplicitAny चालू हो तो उसे त्रुटि माना जाता है। यह JavaScript से लाए गए फ़ाइलों में, और तब आता है जब callback को अलग चर में निकाल लिया जाए; इसके उलट items.map(x => ...) की तरह inline लिखे callback को संदर्भ मिलता है, tsc अनुमान लगा लेता है और यह कभी नहीं आता। वहाँ type लिख देना ही उपाय है। आप स्पष्ट रूप से any भी लिख सकते हैं, पर वह उस parameter की जाँच पूरी तरह बंद करने का निर्णय है — जब पता न हो कि वह क्या है, तो unknown अधिक ईमानदार है और उपयोग से पहले संकुचित करने को बाध्य करता है।
सुधार
इसका एक-लाइन कमांड नहीं है। व्याख्या में लिखा है कि क्या देखना है।
- कौन देता है
- tsc
- बिल्ड और टाइप
- 10
build की त्रुटियाँ किसी औज़ार का चलने से पहले मना कर देना हैं, इसलिए प्रकट होते समय वे कुछ तोड़ती नहीं — पर वे दो सवाल पूछती हैं: क्या आप type या रास्ता असली रूप के अनुसार सुधारेंगे, या as any अथवा दमन-टिप्पणी से उस एक पंक्ति को पार करा देंगे — और यहीं पहली बार वे चीज़ें सामने आती हैं जो केवल आपकी मशीन पर सही हैं: अक्षरों के बड़े-छोटे रूप, extension, और environment variables।
एरर संदेश कैसे पढ़ें
- पहली पंक्ति से पढ़ें। जितना नीचे जाएँगे उतना वह औज़ार के भीतर की बात है; कारण आम तौर पर सबसे ऊपर लिखा होता है।
- फ़ाइल का नाम और पंक्ति संख्या दिखे तो वहीं से शुरू करें — stack का सबसे ऊपरी frame नहीं, बल्कि वह सबसे ऊपरी पंक्ति जिसमें आपकी लिखी फ़ाइल का नाम हो।
- संदेश को जैसा है वैसा खोजें, पर पहले अपने paths और variable नाम हटा दें — वही खोज को अटकाते हैं।
- वही स्थिति औज़ार के हर संस्करण में अलग शब्दों में आती है। नतीजे बेमेल लगें तो संस्करण संख्या भी जोड़ें।
- कोई सुधार चिपकाने से पहले देख लें कि वह क्या फेंक देगा। इनमें कुछ पलटे नहीं जा सकते।
अक्सर पूछे जाने वाले सवाल
Q. “error TS7006: Parameter 'req' implicitly has an 'any' type.” का क्या मतलब है?
उस parameter पर कोई type लिखा नहीं है और tsc के पास अनुमान लगाने का आधार भी नहीं था, इसलिए वह अंतर्निहित रूप से any बन गया — और noImplicitAny चालू हो तो उसे त्रुटि माना जाता है। यह JavaScript से लाए गए फ़ाइलों में, और तब आता है जब callback को अलग चर में निकाल लिया जाए; इसके उलट items.map(x => ...) की तरह inline लिखे callback को संदर्भ मिलता है, tsc अनुमान लगा लेता है और यह कभी नहीं आता। वहाँ type लिख देना ही उपाय है। आप स्पष्ट रूप से any भी लिख सकते हैं, पर वह उस parameter की जाँच पूरी तरह बंद करने का निर्णय है — जब पता न हो कि वह क्या है, तो unknown अधिक ईमानदार है और उपयोग से पहले संकुचित करने को बाध्य करता है।
Q. इसे कैसे ठीक करें?
एक-लाइन कमांड नहीं है। ऊपर की व्याख्या में लिखा है कि क्या देखना है।
Q. यह कौन-सा औज़ार देता है?
tsc। यह बिल्ड और टाइप में आता है, और संदेश 9 शब्दों का है।