"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > 【साक्षात्कार अनिवार्य】ओमन टाइपस्क्रिप्ट साक्षात्कार प्रश्न

【साक्षात्कार अनिवार्य】ओमन टाइपस्क्रिप्ट साक्षात्कार प्रश्न

2024-11-01 को प्रकाशित
ब्राउज़ करें:494

【Interview Essentials】ommon TypeScript Interview Questions

github: https://github.com/Jessie-jzn
वेबसाइट:https://www.jessieontheroad.com/

1. टाइपस्क्रिप्ट का उपयोग क्यों करें?

1. स्थैतिक प्रकार की जाँच

टाइपस्क्रिप्ट का मुख्य लाभ इसकी स्थिर प्रकार की जाँच है, जो रनटाइम के बजाय संकलन चरण के दौरान सामान्य त्रुटियों को पकड़ने में मदद करता है। यह कोड की विश्वसनीयता और स्थिरता को बढ़ाता है।

2. उन्नत कोड संपादन अनुभव

टाइपस्क्रिप्ट का टाइप सिस्टम संपादकों में अधिक सटीक कोड पूर्णता, रीफैक्टरिंग, नेविगेशन और दस्तावेज़ीकरण सुविधाओं को सक्षम बनाता है, जिससे विकास दक्षता में उल्लेखनीय वृद्धि होती है।

3. बेहतर कोड रखरखाव

प्रकार की घोषणाएं कोड के इरादों और संरचना को समझना आसान बनाती हैं, जो टीम विकास वातावरण में विशेष रूप से फायदेमंद है।

4. उन्नत भाषा सुविधाएँ

टाइपस्क्रिप्ट उन्नत सुविधाओं का समर्थन करता है जो जावास्क्रिप्ट में मौजूद नहीं हैं, जैसे इंटरफेस, एनम और जेनरिक, जो अधिक संरचित और स्केलेबल कोड के विकास की सुविधा प्रदान करते हैं।

5. बेहतर टूल समर्थन

टाइपस्क्रिप्ट जेनरेट किए गए जावास्क्रिप्ट कोड को अनुकूलित करने के लिए विभिन्न कंपाइलर विकल्प प्रदान करता है और टाइपस्क्रिप्ट को संगत जावास्क्रिप्ट में संकलित करके विभिन्न जेएस वातावरण का समर्थन करता है।

2. टाइपस्क्रिप्ट बनाम जावास्क्रिप्ट

टाइपस्क्रिप्ट जावास्क्रिप्ट
टाइप सिस्टम संकलन-समय प्रकार की जांच के साथ स्थिर टाइपिंग। चर, फ़ंक्शन पैरामीटर और रिटर्न मान के लिए प्रकार निर्दिष्ट किए जा सकते हैं। रनटाइम प्रकार की जांच के साथ गतिशील टाइपिंग, जिससे टाइप-संबंधित रनटाइम त्रुटियां हो सकती हैं।
एनोटेशन टाइप करें प्रकारों को स्पष्ट रूप से परिभाषित करने के लिए टाइप एनोटेशन का समर्थन करता है। उदाहरण के लिए, नाम दें: स्ट्रिंग = "ऐलिस"; कोई प्रकार का एनोटेशन नहीं। प्रकार रनटाइम पर निर्धारित होते हैं।
संकलन जावास्क्रिप्ट में संकलन की आवश्यकता है। टाइपस्क्रिप्ट कंपाइलर प्रकार की त्रुटियों की जांच करता है और समकक्ष जावास्क्रिप्ट कोड उत्पन्न करता है। संकलन चरण के बिना सीधे ब्राउज़र या Node.js में चलता है।
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग कक्षाएं, इंटरफेस, अमूर्त कक्षाएं और एक्सेस संशोधक जैसी समृद्ध ओओपी सुविधाएं। प्रोटोटाइप-आधारित वंशानुक्रम के साथ बुनियादी OOP सुविधाएँ।
उन्नत विशेषताएँ इसमें सभी ES6 और ES7 सुविधाएं शामिल हैं, साथ ही जेनरिक, एनम और डेकोरेटर जैसी अतिरिक्त सुविधाएं भी शामिल हैं। ES6 और बाद के मानकों का समर्थन करता है, लेकिन टाइपस्क्रिप्ट द्वारा प्रदान की गई कुछ उन्नत सुविधाओं का अभाव है।

3. टाइपस्क्रिप्ट में बुनियादी डेटा प्रकार

  • बूलियन: सही या गलत मूल्यों का प्रतिनिधित्व करता है।
  • संख्या: पूर्णांक और फ़्लोटिंग-पॉइंट संख्या दोनों का प्रतिनिधित्व करता है।
  • स्ट्रिंग: एकल या दोहरे उद्धरण चिह्नों का उपयोग करके पाठ्य डेटा का प्रतिनिधित्व करता है।
  • Array: प्रकार[] या Array का उपयोग करके एक निर्दिष्ट प्रकार के मानों के संग्रह का प्रतिनिधित्व करता है।
  • ट्यूपल: निर्दिष्ट प्रकारों के साथ तत्वों की एक निश्चित संख्या के साथ एक सरणी का प्रतिनिधित्व करता है।
  • Enum: नामित स्थिरांक के एक सेट का प्रतिनिधित्व करता है।
  • Any: किसी भी प्रकार के मूल्य का प्रतिनिधित्व करता है। कोई प्रकार की जाँच प्रदान नहीं करता।
  • शून्य: किसी मान की अनुपस्थिति का प्रतिनिधित्व करता है, आमतौर पर फ़ंक्शन के रिटर्न प्रकार के रूप में उपयोग किया जाता है जो कोई मान नहीं लौटाता है।
  • शून्य और अपरिभाषित: क्रमशः एक मूल्य और अप्रारंभीकृत स्थिति की अनुपस्थिति का प्रतिनिधित्व करते हैं।
  • कभी नहीं: उन मानों का प्रतिनिधित्व करता है जो कभी घटित नहीं होते, जैसे कि फ़ंक्शन जो त्रुटियां उत्पन्न करते हैं या अनिश्चित काल तक चलते हैं।
  • ऑब्जेक्ट: गैर-आदिम प्रकारों का प्रतिनिधित्व करता है।

4. टाइपस्क्रिप्ट में जेनरिक क्या हैं? उनका उपयोग कैसे किया जाता है?

जेनेरिक प्रकार की सुरक्षा लागू करते हुए फ़ंक्शंस, कक्षाओं और इंटरफ़ेस को किसी भी प्रकार के साथ काम करने की अनुमति देता है।

उदाहरण:

function identity(arg: T): T {
  return arg;
}

const numberIdentity = identity(42);
const stringIdentity = identity("Hello");

इस उदाहरण में, पहचान फ़ंक्शन एक सामान्य का उपयोग करता है, जो इसे किसी भी प्रकार के मान को स्वीकार करने और वापस करने की अनुमति देता है।

5. टाइपस्क्रिप्ट में अज्ञात और किसी के बीच अंतर

  • किसी भी प्रकार: किसी भी प्रकार के मूल्य का प्रतिनिधित्व करता है और सभी प्रकार की जांच को बायपास करता है। इसे बिना प्रकार की जांच के कोई भी मान निर्दिष्ट किया जा सकता है।
  • अज्ञात प्रकार: एक अज्ञात प्रकार का प्रतिनिधित्व करता है। अज्ञात प्रकार के मानों का उपयोग करने से पहले उनकी जाँच की जानी चाहिए, जिससे उन मानों को संभालने का एक सुरक्षित तरीका उपलब्ध हो सके जिनका प्रकार अनिश्चित है।
let anyVar: any;
let unknownVar: unknown;

anyVar = 5;
anyVar.toUpperCase(); // No compile-time error, but might cause runtime error

unknownVar = "Hello";
if (typeof unknownVar === "string") {
  unknownVar.toUpperCase(); // Type check ensures safety
}

6. केवल पढ़ने योग्य संशोधक और स्थिरांक कीवर्ड के बीच अंतर

  • केवल पढ़ने योग्य संशोधक: आरंभीकरण के बाद उन्हें अपरिवर्तनीय बनाने के लिए ऑब्जेक्ट गुणों पर उपयोग किया जाता है।
  • const कीवर्ड: अपरिवर्तनीय संदर्भों के साथ चर घोषित करने के लिए उपयोग किया जाता है। ऑब्जेक्ट के गुणों को अभी भी संशोधित किया जा सकता है।
const obj = { name: "John" };
obj.name = "Doe"; // Allowed

interface User {
  readonly id: number;
  name: string;
}

const user: User = { id: 1, name: "John" };
user.name = "Doe"; // Allowed
user.id = 2; // Error, `id` is readonly

7. टाइपस्क्रिप्ट में सज्जाकार

डेकोरेटर एक विशेष टाइपस्क्रिप्ट सुविधा है जो मेटाडेटा जोड़ने या कक्षाओं, विधियों, गुणों या मापदंडों को संशोधित करने की अनुमति देती है।

प्रकार:

  • क्लास डेकोरेटर्स: क्लास व्यवहार को संशोधित करने या मेटाडेटा जोड़ने के लिए क्लास कंस्ट्रक्टर्स पर लागू।
  • मेथड डेकोरेटर्स: उनके व्यवहार को बदलने या मेटाडेटा जोड़ने के तरीकों पर लागू।
  • एक्सेसर डेकोरेटर्स: एक्सेसर्स को उनके व्यवहार को संशोधित करने के लिए प्राप्त करने या सेट करने के लिए लागू किया जाता है।
  • प्रॉपर्टी डेकोरेटर्स: मेटाडेटा जोड़ने या उनके व्यवहार को संशोधित करने के लिए क्लास प्रॉपर्टी पर लागू किया जाता है।
  • पैरामीटर डेकोरेटर्स: मेटाडेटा जोड़ने के लिए विधि पैरामीटर्स पर लागू।

उदाहरण:

  • क्लास डेकोरेटर:
function sealed(constructor: Function) {
  Object.seal(constructor);
  Object.seal(constructor.prototype);
}

@sealed
class Greeter {
  greeting: string;
  constructor(message: string) {
    this.greeting = message;
  }

  greet() {
    return `Hello, ${this.greeting}`;
  }
}

  • मेथड डेकोरेटर:
function logMethod(target: any, propertyName: string, descriptor: PropertyDescriptor) {
  const originalMethod = descriptor.value;
  descriptor.value = function (...args: any[]) {
    console.log(`Method ${propertyName} called with args: ${JSON.stringify(args)}`);
    return originalMethod.apply(this, args);
  };
}

class Calculator {
  @logMethod
  add(a: number, b: number): number {
    return a   b;
  }
}

उपयोग:

tsconfig.json में एक्सपेरिमेंटल डेकोरेटर्स को सही पर सेट करके डेकोरेटर्स को सक्षम किया जाता है।

8. इंटरफ़ेस और प्रकार के बीच अंतर

interface और type दोनों का उपयोग ऑब्जेक्ट प्रकारों को परिभाषित करने के लिए किया जाता है, लेकिन उनमें कुछ अंतर हैं:

इंटरफ़ेस प्रकार
बुनियादी उपयोग गुणों और विधियों सहित वस्तुओं के आकार को परिभाषित करता है। आदिम प्रकार, वस्तु प्रकार, संघ प्रकार, प्रतिच्छेदन प्रकार आदि को परिभाषित करता है।
विस्तार घोषणा विलय का समर्थन करता है। एक ही इंटरफ़ेस की एकाधिक घोषणाएँ स्वचालित रूप से मर्ज हो जाती हैं। घोषणा विलय का समर्थन नहीं करता है।
संघ और प्रतिच्छेदन प्रकार समर्थित नहीं। संघ का समर्थन करता है (`
आदिम प्रकार के उपनाम समर्थित नहीं। आदिम प्रकार के उपनाम का समर्थन करता है।
मैप किए गए प्रकार समर्थित नहीं। मैप किए गए प्रकारों का समर्थन करता है।
वर्ग कार्यान्वयन उपकरणों का उपयोग करके वर्ग कार्यान्वयन का समर्थन करता है। प्रत्यक्ष वर्ग कार्यान्वयन का समर्थन नहीं करता है।

इन प्रश्नों और उत्तरों से मौलिक अवधारणाओं और व्यावहारिक उपयोग को शामिल करके टाइपस्क्रिप्ट साक्षात्कार की तैयारी में मदद मिलेगी।

विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: https://dev.to/jessie_chen_4d3333540e0c71/interview-essentials-8-common-typescript-interview- questions-4jki?1 यदि कोई उल्लंघन है, तो कृपया इसे पूरा करने के लिए अध्ययन करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3