TypeScript Static Properties and Methods In Class


TypeScript में classes काफी useful हैं, जो हमारे code को ज़्यादा structured और maintainable बनाने में help करते हैं।

इस topic में हम discuss करेंगे static properties और static methods के बारे में , कि static properties और methods क्या होती हैं, कैसे use होती हैं, और किस तरह से यह आपको efficient और organized code लिखने में help कर सकती हैं।

What are static properties & methods  ?

TypeScript में static properties और static methods class के instances के लिए नहीं होते। यह class के लिए specific होते हैं, और class के नाम के through directly access किये जा सकते हैं, बिना किसी object को बनाये।

TypeScript Static Properties

यह properties class के objects के साथ bind नहीं होती, बल्कि class के साथ bind होती हैं. इनको access करने के लिए हमेशा class का नाम use होता है, न कि किसी object का।

TypeScript Static Methods

Static methods भी वैसे ही काम करते हैं जैसे static properties . यह methods class के level पर define होते हैं और इन्हे class के नाम से directly call किया जाए सकता है।

यह instance methods कि तरह नहीं होते जिन्हे object के through call करना पड़ता है।

TypeScript define static properties in class

Static property को define करने के लिए आपको static keyword use करना होता है।

Example

class MathHelper { static PI: number = 3.14159; static calculateCircumference(radius: number): number { return 2 * MathHelper.PI * radius; } } console.log(MathHelper.PI); // Output: 3.14159 console.log(MathHelper.calculateCircumference(5)); // Output: 31.4159

यहां, PI एक static property है जो MathHelper class के अंदर define कि गयी है।

आप notice करेंगे कि हमने इससे access करने के लिए MathHelper.PI का use किया, class का object बनाकर इसे access नहीं किया।

TypeScript define static methods in class

जैसे static properties को define करने के लिए static keyword use करते हैं, वैसे ही static methods को बनाने के लिए भी static keyword का use होता है।

Static methods उन operations के लिए useful होते हैं जो किसी specific instance पर depend नहीं करते।

Example

class Utility { static toUpperCase(str: string): string { return str.toUpperCase(); } } console.log(Utility.toUpperCase('hello')); // Output: HELLO

इस example में toUpperCase() एक static method है जो string को uppercase में convert करता है, और हमने इससे class के नाम Utility के through directly call किया।

Real-World Example

चलिए एक complex example देखते हैं जो real-world scenario को represent करता है।

class User { static totalUsers: number = 0; name: string; constructor(name: string) { this.name = name; User.totalUsers++; } static getTotalUsers(): number { return User.totalUsers; } } const user1 = new User("Alice"); const user2 = new User("Bob"); console.log(User.getTotalUsers()); // Output: 2

यहां totalUsers एक static property है जो हर बार User class का object बनने पर increment होती है। Static method getTotalUsers() को हमने इस value को retrieve करने के लिए बनाया।

Use-Case of Static Properties & Methods

1. Utility Classes

Static methods काफी useful होते हैं utility classes के लिए जहाँ आपको ऐसे methods बनाने होते हैं जो किसी instance पर depend नहीं करते।

Example: Math, StringUtils, DateUtils जैसे classes में static methods का use काफी होता है।

class MathUtil { static square(n: number): number { return n * n; } } console.log(MathUtil.square(5)); // Output: 25

2. Singleton Pattern

Static properties और methods का use singleton pattern implement करने में भी होता है, जहाँ हमें सिर्फ single instance चाहिए होता है किसी class का।

class Singleton { private static instance: Singleton; private constructor() {} static getInstance(): Singleton { if (!Singleton.instance) { Singleton.instance = new Singleton(); } return Singleton.instance; } } const s1 = Singleton.getInstance(); const s2 = Singleton.getInstance(); console.log(s1 === s2); // Output: true

3. Define Constants

Static properties को constants के लिए define किया जा सकता है जो class के साथ common हो और कभी change न हो।

class Config { static readonly API_URL: string = "https://api.example.com"; } console.log(Config.API_URL); // Output: https://api.example.com

Benefits of Static Properties & Methods

  • Memory Efficiency : Static properties और methods directly class के साथ related होते हैं, तो इनको अलग-अलग instances के लिए बार-बार allocate नहीं किया जाता। इससे memory efficiency बढ़ती है।

  • Common Data Sharing : अगर आपको कुछ common data को share करना है across multiple instances, तो static properties का use करना best practice है।

  • Utility Functions: जो functions या methods किसी specific object state पर depend नहीं करते, उन्हें static methods के through directly class के level पर implement किया जा सकता है।

Conclusion

TypeScript के static properties और methods का use करना आपको better memory management, code organization, और reusability provide करता है।

Static properties को define करने से आप common data को efficiently manage कर सकते हैं, और static methods को use करके आप utility functions को बिना किसी object के directly call कर सकते हैं।

लेकिन, इनका use cautiously करना चाहिए, क्योंकि यह instance-level customization provide नहीं करते।

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook