होम·एरर संदेश

tsc · बिल्ड और टाइप

संदेश

error TS2339: Property 'user' does not exist on type 'Request'.

इसका मतलब

वह type उस गुण की घोषणा नहीं करता। यह तब आता है जब आप library के type में न होने वाला कोई फ़ील्ड जोड़ते हैं (Express के Request पर user लगाना इसका उदाहरण है), या टाइपिंग की चूक हो, या बिना संकुचित किए union के केवल एक सदस्य पर मौजूद गुण पढ़ा जाए। असली रूप के अनुसार type सुधारना ही उत्तर है, और union हो तो 'x' in y या किसी विभेदक फ़ील्ड से संकुचित करने पर उस शाखा के भीतर पहुँच खुल जाती है। as any से चुप कराना केवल compiler का मुँह बंद करता है: वह जगह अब ग़लत हिज्जे वाला गुण-नाम भी पास कर देगी।

सुधार

इसका एक-लाइन कमांड नहीं है। व्याख्या में लिखा है कि क्या देखना है।

कौन देता है
tsc
बिल्ड और टाइप
10

build की त्रुटियाँ किसी औज़ार का चलने से पहले मना कर देना हैं, इसलिए प्रकट होते समय वे कुछ तोड़ती नहीं — पर वे दो सवाल पूछती हैं: क्या आप type या रास्ता असली रूप के अनुसार सुधारेंगे, या as any अथवा दमन-टिप्पणी से उस एक पंक्ति को पार करा देंगे — और यहीं पहली बार वे चीज़ें सामने आती हैं जो केवल आपकी मशीन पर सही हैं: अक्षरों के बड़े-छोटे रूप, extension, और environment variables।

एरर संदेश कैसे पढ़ें

  • पहली पंक्ति से पढ़ें। जितना नीचे जाएँगे उतना वह औज़ार के भीतर की बात है; कारण आम तौर पर सबसे ऊपर लिखा होता है।
  • फ़ाइल का नाम और पंक्ति संख्या दिखे तो वहीं से शुरू करें — stack का सबसे ऊपरी frame नहीं, बल्कि वह सबसे ऊपरी पंक्ति जिसमें आपकी लिखी फ़ाइल का नाम हो।
  • संदेश को जैसा है वैसा खोजें, पर पहले अपने paths और variable नाम हटा दें — वही खोज को अटकाते हैं।
  • वही स्थिति औज़ार के हर संस्करण में अलग शब्दों में आती है। नतीजे बेमेल लगें तो संस्करण संख्या भी जोड़ें।
  • कोई सुधार चिपकाने से पहले देख लें कि वह क्या फेंक देगा। इनमें कुछ पलटे नहीं जा सकते।

अक्सर पूछे जाने वाले सवाल

Q. “error TS2339: Property 'user' does not exist on type 'Request'.” का क्या मतलब है?

वह type उस गुण की घोषणा नहीं करता। यह तब आता है जब आप library के type में न होने वाला कोई फ़ील्ड जोड़ते हैं (Express के Request पर user लगाना इसका उदाहरण है), या टाइपिंग की चूक हो, या बिना संकुचित किए union के केवल एक सदस्य पर मौजूद गुण पढ़ा जाए। असली रूप के अनुसार type सुधारना ही उत्तर है, और union हो तो 'x' in y या किसी विभेदक फ़ील्ड से संकुचित करने पर उस शाखा के भीतर पहुँच खुल जाती है। as any से चुप कराना केवल compiler का मुँह बंद करता है: वह जगह अब ग़लत हिज्जे वाला गुण-नाम भी पास कर देगी।

Q. इसे कैसे ठीक करें?

एक-लाइन कमांड नहीं है। ऊपर की व्याख्या में लिखा है कि क्या देखना है।

Q. यह कौन-सा औज़ार देता है?

tsc। यह बिल्ड और टाइप में आता है, और संदेश 10 शब्दों का है।

साथ आने वाले एरर