टाइपस्क्रिप्ट में सशर्त लॉजिक के लिए सर्वोत्तम अभ्यास
यह लेख टाइपस्क्रिप्ट में सशर्त लॉजिक के लिए सर्वोत्तम अभ्यासों को समझाता है।
YouTube Video
टाइपस्क्रिप्ट में सशर्त लॉजिक के लिए सर्वोत्तम अभ्यास
टाइप गार्ड्स के साथ टाइप्स को संकीर्ण करना
टाइपस्क्रिप्ट के टाइप सिस्टम का उपयोग करके और if
स्टेटमेंट्स के भीतर टाइप गार्ड्स का उपयोग करके, आप टाइप सुरक्षा और पठनीयता को बेहतर बना सकते हैं।
1function processInput(input: string | number) {
2 if (typeof input === "string") {
3 console.log(`String input: ${input.toUpperCase()}`);
4 } else {
5 console.log(`Number input: ${input.toFixed(2)}`);
6 }
7}
typeof
और अन्य टाइप गार्ड्स का उपयोग यह सुनिश्चित करता है कि प्रत्येक ब्लॉक के भीतर का कोड टाइप-सुरक्षित और संदर्भ के अनुकूल है।
नेस्टेड if
स्टेटमेंट्स से बचें
गहरे नेस्टेड if
स्टेटमेंट्स कोड की पठनीयता और अनुरक्षण क्षमता को कम कर देते हैं। इसके बजाय, अर्ली रिटर्न्स, लॉजिकल ऑपरेटर्स, या एक्सट्रेक्ट फंक्शन्स का उपयोग करें।
गलत उदाहरण:
1function checkUser(user: { age?: number; isAdmin?: boolean }) {
2 if (user.age) {
3 if (user.age > 18) {
4 if (user.isAdmin) {
5 console.log("User is an adult admin.");
6 }
7 }
8 }
9}
सुधारा गया उदाहरण:
1function checkUser(user: { age?: number; isAdmin?: boolean }) {
2 if (!user.age || user.age <= 18 || !user.isAdmin) {
3 return;
4 }
5 console.log("User is an adult admin.");
6}
यह दृष्टिकोण कोड को फ्लैट करता है और लॉजिक को अधिक समझने योग्य बनाता है।
ऑप्शनल चेनिंग का उपयोग करें
नेस्टेड प्रॉपर्टीज की जांच करते समय, अनावश्यक if
कंडीशंस से बचने के लिए ऑप्शनल चेनिंग (?.
) का उपयोग करें।
ऑप्शनल चेनिंग के बिना:
1if (user && user.profile && user.profile.email) {
2 console.log(user.profile.email);
3}
ऑप्शनल चेनिंग का उपयोग करते हुए:
1if (user?.profile?.email) {
2 console.log(user.profile.email);
3}
यह बायलरप्लेट कोड को कम करता है और पठनीयता में सुधार करता है। यहाँ बायलरप्लेट कोड का तात्पर्य दोहराव, मानकीकृत कोड से है जो प्रोग्रामिंग में विशिष्ट कार्यों को पूरा करने के लिए अक्सर आवश्यक होता है।
सख्त समानता ऑपरेटर्स का उपयोग करें
टाइपस्क्रिप्ट सख्त टाइपिंग का समर्थन करता है, और सख्त समानता (===
) या सख्त असमानता (!==
) का उपयोग अप्रत्याशित टाइप कोअर्शन को रोकने में मदद करता है।
गलत उदाहरण:
1if (value == "123") {
2 console.log("Value is 123.");
3}
सुधारा गया उदाहरण:
1if (value === "123") {
2 console.log("Value is 123.");
3}
स्पष्ट कंडीशन्स के लिए एनोंस या लिटरल टाइप्स का उपयोग करें
एनोंस या लिटरल टाइप्स का उपयोग कंडीशन्स को स्पष्ट करता है और त्रुटियों की संभावनाओं को कम करता है।
1type Status = "success" | "error" | "loading";
2
3function displayMessage(status: Status) {
4 if (status === "success") {
5 console.log("Operation succeeded.");
6 } else if (status === "error") {
7 console.log("Operation failed.");
8 } else {
9 console.log("Loading...");
10 }
11}
अपेक्षित मानों को परिभाषित करके, टाइपस्क्रिप्ट टाइप्स का पता लगा सकता है और सटीकता सुनिश्चित कर सकता है।
समान शर्तों को मिलाएं
जब कई शर्तें एक ही लॉजिक साझा करती हैं, तो उन्हें तार्किक ऑपरेटर या स्विच स्टेटमेंट का उपयोग करके समेकित करें।
गलत उदाहरण:
1if (role === "admin") {
2 grantAccess();
3}
4if (role === "superadmin") {
5 grantAccess();
6}
सुधारा गया उदाहरण:
1if (role === "admin" || role === "superadmin") {
2 grantAccess();
3}
या, कई स्पष्ट शाखाओं को संभालने के लिए स्विच स्टेटमेंट का उपयोग करें:
1switch (role) {
2 case "admin":
3 case "superadmin":
4 grantAccess();
5 break;
6 case "user":
7 console.log("Limited access.");
8 break;
9 default:
10 console.log("No access.");
11}
सशर्त अभिव्यक्तियों को जटिल बनाने से बचें
यदि कथनों में जटिल सशर्त अभिव्यक्तियाँ पठनीयता को कम करती हैं। उन्हें सार्थक वेरिएबल्स या फंक्शंस में निकालें।
गलत उदाहरण:
1if (user.age > 18 && user.isAdmin && user.permissions.includes("write")) {
2 console.log("User can write.");
3}
सुधारा गया उदाहरण:
1const isAdultAdminWithWriteAccess =
2 user.age > 18 && user.isAdmin && user.permissions.includes("write");
3
4if (isAdultAdminWithWriteAccess) {
5 console.log("User can write.");
6}
शर्तों को नाम देने से स्पष्टता बढ़ती है और कोड को आत्म-व्याख्या योग्य बनाती है।
सरल शर्तों के लिए टर्नरी ऑपरेटर का उपयोग करें
सरल शर्तों के लिए, टर्नरी ऑपरेटर का उपयोग कोड को संक्षिप्त बनाता है।
उदाहरण:
1const message = isLoggedIn ? "Welcome back!" : "Please log in.";
2console.log(message);
हालांकि, जटिल शर्तों के लिए टर्नरी ऑपरेटर का उपयोग करने से बचें क्योंकि यह पठनीयता को कम करता है।
शर्तीय शाखाओं को ऐरे या मानचित्रों के साथ बदलें
जब शर्त केवल एक मान मैपिंग होती है, तो ऐरे या मानचित्रों का उपयोग कोड पठनीयता और बनाए रखने की क्षमता को switch
वक्तव्यों या जटिल if-else
ब्लॉकों की तुलना में सुधार सकता है। TypeScript में, आप इसे और अधिक सुरक्षित रूप से लागू करने के लिए प्रकार की जानकारी का लाभ उठा सकते हैं।
गलत उदाहरण:
1function getDayName(day: number): string {
2 switch (day) {
3 case 0:
4 return "Sunday";
5 case 1:
6 return "Monday";
7 case 2:
8 return "Tuesday";
9 case 3:
10 return "Wednesday";
11 case 4:
12 return "Thursday";
13 case 5:
14 return "Friday";
15 case 6:
16 return "Saturday";
17 default:
18 return "Invalid day";
19 }
20}
सुधारा गया उदाहरण: ऐरे का उपयोग करना
1function getDayName(day: number): string {
2 const days = [
3 "Sunday",
4 "Monday",
5 "Tuesday",
6 "Wednesday",
7 "Thursday",
8 "Friday",
9 "Saturday"
10 ];
11 return days[day] ?? "Invalid day";
12}
सुधारा गया उदाहरण: मानचित्र का उपयोग करना
1function getDayName(day: number): string {
2 const dayMap = new Map<number, string>([
3 [0, "Sunday"],
4 [1, "Monday"],
5 [2, "Tuesday"],
6 [3, "Wednesday"],
7 [4, "Thursday"],
8 [5, "Friday"],
9 [6, "Saturday"]
10 ]);
11 return dayMap.get(day) ?? "Invalid day";
12}
निष्कर्ष
इन सर्वोत्तम प्रथाओं का पालन करके, आप TypeScript में if कथनों को स्पष्ट, कुशल और बनाए रखने योग्य बना सकते हैं। टाइप गार्ड्स, ऑप्शनल चेनिंग, और एनम्स जैसी टाइपस्क्रिप्ट सुविधाओं का उपयोग करके, आप कोड की पठनीयता और मजबूती को सुधार सकते हैं। सर्वोत्तम प्रथाओं का पालन करके, आप शर्तों को संक्षिप्त और स्पष्ट रख सकते हैं, जिससे कोड को समझना और बनाए रखना आसान हो जाता है।
आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।