26 पॉइंट द्वारा xguru 2023-01-04 | 6 टिप्पणियां | WhatsApp पर शेयर करें

#1 इसे {समूह(Set)} की तरह सोचना
#2 घोषित type और narrowed type को समझना
#3 optional field की जगह discriminated union का उपयोग
#4 type assertion से बचने के लिए type predicate का उपयोग
#5 union type distribution को नियंत्रित करना
#6 exhaustive checking के जरिए compile समय पर unhandled cases की जाँच
#7 interface की बजाय type का उपयोग
#8 सही परिस्थिति में array की बजाय tuple का उपयोग
#9 inferred type को अधिक general या specific बनाने पर नियंत्रण
#10 अतिरिक्त generic type parameter बनाने के लिए infer का उपयोग
#11 type manipulation में रचनात्मकता दिखाकर DRY बनाए रखना
समापन

6 टिप्पणियां

 
tested 2023-01-04

मुझे लगता है कि 7वां बिंदु React के नज़रिए से लिखा गया है।
मैं Type की बजाय Interface को पसंद करता हूँ। यह दूसरे भाषाओं में भी मौजूद एक syntax है।

 
alstjr7375 2023-01-04

मैं भी। मुझे याद है कि पहले TypeScript handbook में भी जहाँ तक संभव हो interface को प्राथमिकता से इस्तेमाल करने की सलाह दी गई थी।

 
alstjr7375 2023-01-04
 
bichi 2023-01-04

बाकी सब ठीक है, लेकिन 7 में interface की बजाय type इस्तेमाल करने वाली बात क्या सच में ज़रूरी है? उसे टिप कहना मुश्किल है। कुछ मामलों में interface की अभिव्यक्त क्षमता बेहतर होती है, उदाहरण के लिए interface Foo {(b: number): A; (): B}

 
a741593 2023-01-04

मैं Type का समर्थन नहीं कर रहा हूँ, लेकिन ज़्यादा expressive उदाहरण ठीक से समझ नहीं आ रहा है। क्या वही उदाहरण Types के साथ भी उसी तरह व्यक्त नहीं किया जा सकता?

interface Foo {(b: number): A; (): B}
type Foo = {(b: number): A; (): B}

 
harimkims 2023-01-05

Effective TypeScript किताब में type और interface में से किसे इस्तेमाल करना चाहिए, इस पर एक हिस्सा है, उसे उद्धृत कर रहा हूँ.

आइए type और interface में से किसका उपयोग करना चाहिए, इस पर निष्कर्ष निकालें। अगर type जटिल है, तो बिना ज़्यादा सोचे type alias का उपयोग करना चाहिए। लेकिन अगर वह सरल object type है, जिसे type और interface दोनों तरीकों से व्यक्त किया जा सकता है, तो consistency और augmentation के दृष्टिकोण से विचार करना चाहिए। अगर आप ऐसे codebase पर काम कर रहे हैं जहाँ लगातार interface का उपयोग होता है, तो interface का उपयोग करें; और अगर लगातार type का उपयोग हो रहा है, तो type का उपयोग करें.

अगर project की style अभी स्थापित नहीं हुई है, तो यह सोचना चाहिए कि भविष्य में augmentation की संभावना है या नहीं। अगर आपको किसी API के लिए type declaration लिखना है, तो interface का उपयोग करना बेहतर है। क्योंकि API बदलने पर user interface के माध्यम से नए fields को merge कर सकते हैं, जो उपयोगी होता है। लेकिन project के अंदरूनी उपयोग वाले types में declaration merging होना गलत design है। इसलिए ऐसे मामलों में type का उपयोग करना चाहिए.