any उस value के लिए type checking बंद कर देता है, तो हर property access और call compile हो जाता है चाहे वह गलत ही हो। unknown अंदर आती कोई भी value मान लेता है पर इस्तेमाल से पहले आपसे typeof जांच, type guard या schema parse से उसे narrow कराता है। unknown को भरोसे की सीमाओं पर इस्तेमाल करें, जैसे fetch के responses और JSON.parse। any लगभग कभी नहीं।
इंटरव्यूअर यह क्यों पूछते हैं
यह उन लोगों को अलग करता है जो type सिस्टम का इस्तेमाल करते हैं और जो उससे लड़ते हैं। इंटरव्यूअर जांच रहा है कि आप भरोसे की सीमाओं के बारे में सोचते हैं या नहीं, आपको पता है या नहीं कि TypeScript के types runtime पर उड़ जाते हैं, और आप network या डेटाबेस से आते डेटा को शक्ल मानकर उम्मीद लगाने की जगह validate करते हैं या नहीं। इससे यह भी सामने आता है कि आप legacy कोड कैसे संभालते हैं, क्योंकि ईमानदार जवाब में शुद्धता नहीं, migration की कहानी होती है।
अपना जवाब कैसे स्ट्रक्चर करें
- दोनों को एक एक लाइन में परिभाषित करें।
- बताएं कि types runtime पर मिट जाते हैं, इसलिए validation अलग काम है।
- वे सीमाएं गिनाएं जहां unknown की जगह है।
- वह संकरा मामला बताएं जहां any अब भी स्वीकार्य है।
उदाहरण जवाब
मेरा नियम यह है कि any एक ऐसा bug है जो मुझे अभी मिला नहीं। अगर मैं any लिखता हूं तो मैंने compiler से कह दिया कि मदद करना बंद करो, और नाकामी अब किसी यूज़र के ब्राउज़र में runtime पर सामने आएगी। unknown उसका ईमानदार रूप है: वह कहता है मुझे नहीं पता यह क्या है, और compiler मुझसे छूने से पहले शक्ल साबित कराता है। व्यवहार में इसका मतलब है कि भरोसे की सीमा पार करती हर चीज़ unknown से शुरू होती है। fetch का response, webhook का body, JSON.parse या localStorage से जो कुछ निकले। एक fintech में जहां मैंने काम किया, हम API के response types हाथ से लिखते थे और वे करीब दो महीनों में backend से हट गए, तो एक field जो nullable हो गई थी वह प्रोडक्शन में table का render क्रैश कराने लगी। हम सीमा पर zod से parse करने और schema से TypeScript types निकालने पर आ गए, और उस पूरी श्रेणी का bug गायब हो गया। any की इजाज़त मैं अब भी सिर्फ किसी कसकर सीमित generic helper के अंदर देता हूं, और वहां भी unknown के साथ एक guard आमतौर पर काम कर देता है।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- उन schemas को backend के साथ तालमेल में कैसे रखते हैं?
- यहां type assertion और type guard में क्या फर्क है?
- जो codebase पहले से any से भरा हो, उसमें यह कैसे लाएंगे?
फुल स्टैक डेवलपर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें