# मॉड्यूल्स: import और export — टाइपस्क्रिप्ट

Source: https://www.geekswithgeeks.com/hi/typescript/ts-modules

> कोड को फ़ाइलों में बाँटें और उनके बीच टाइप्स और वैल्यू साझा करें।

## नेम्ड एक्सपोर्ट्स

एक फ़ाइल जितने चाहे नेम्ड वैल्यू, फ़ंक्शन, टाइप या इंटरफ़ेस एक्सपोर्ट कर सकती है।

```typescript
// math.ts
export function add(a: number, b: number): number {
  return a + b;
}
export interface Point {
  x: number;
  y: number;
}
```

## डिफ़ॉल्ट एक्सपोर्ट और import

एक फ़ाइल में अधिकतम एक `export default` होता है — इसे बिना कर्ली ब्रेसेस के इंपोर्ट किया जाता है, और मनचाहा नाम दिया जा सकता है।

```typescript
// logger.ts
export default function log(msg: string) {
  console.log(`[LOG] ${msg}`);
}

// app.ts
import myLogger from "./logger";
import { add, Point } from "./math";

myLogger("started");
```

## केवल-टाइप इंपोर्ट

`import type { Point } from "./math"` केवल टाइप इंपोर्ट करता है, जो कंपाइल-टाइम पर पूरी तरह मिट जाता है — आउटपुट JS में कुछ अतिरिक्त नहीं जाता।

**Quiz:** एक फ़ाइल में कितने `export default` स्टेटमेंट हो सकते हैं?

- [x] अधिकतम एक
- [ ] असीमित
- [ ] प्रति इंटरफ़ेस ठीक एक

*Answer:* अधिकतम एक. एक मॉड्यूल में कई नेम्ड एक्सपोर्ट हो सकते हैं पर केवल एक डिफ़ॉल्ट एक्सपोर्ट।
