TypeScript गोंद की तरह: Python, C++ और Go के साथ एकीकरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

TypeScript अकेला क्यों नहीं रह सकता?

\n

जब हम TypeScript में लिखते हैं, तो हम इसकी सख्ती, ऑटो-कम्प्लीशन और जेनेरिक्स के आदी हो जाते हैं। लेकिन देर-सबेर हर डेवलपर के सामने सवाल आता है: "क्या होगा अगर मुझे Python, C++ या Go का कोड कॉल करना पड़े?" क्या पूरा प्रोजेक्ट दोबारा लिखना होगा?

\n

अच्छी खबर: TypeScript कोई अलग-थलग द्वीप नहीं है। यह नेटिव मॉड्यूल, WebAssembly, gRPC और सामान्य HTTP ब्रिज के ज़रिए दूसरी भाषाओं से दोस्ती कर सकता है। इस लेख में हम TypeScript को दूसरी भाषाओं से जोड़ने के तीन असली परिदृश्य देखेंगे। आप सीखेंगे कि फ्रंटएंड, बैकएंड और हाई-परफॉर्मेंस कंप्यूटिंग को एक स्टैक में कैसे जोड़ा जाए।

\n\n

परिदृश्य 1: TypeScript + Python — डेटा साइंस को सुपरचार्ज करें

\n

Python मशीन लर्निंग और डेटा एनालिसिस का बादशाह है। लेकिन इसकी कमज़ोरी वेब इंटरफेस है। TypeScript, इसके विपरीत, ब्राउज़र और सर्वर पर शानदार काम करता है। दोनों की ताकत को मिलाना समझदारी है।

\n\n

तरीका A: HTTP माइक्रोसर्विस (सबसे आसान)

\n

सबसे सीधा रास्ता — Python सर्वर (जैसे FastAPI) चलाएँ और TypeScript से fetch के ज़रिए उसे कॉल करें।

\n

Python (backend.py):

\n
from fastapi import FastAPI\nfrom pydantic import BaseModel\nimport joblib\n\napp = FastAPI()\nmodel = joblib.load('model.pkl')\n\nclass InputData(BaseModel):\n    features: list[float]\n\n@app.post("/predict")\ndef predict(data: InputData):\n    result = model.predict([data.features])\n    return {"prediction": result.tolist()}\n
\n

TypeScript (frontend.ts):

\n
interface PredictionResponse {\n    prediction: number[];\n}\n\nasync function getPrediction(features: number[]): Promise<number[]> {\n    const response = await fetch('http://localhost:8000/predict', {\n        method: 'POST',\n        headers: { 'Content-Type': 'application/json' },\n        body: JSON.stringify({ features })\n    });\n    \n    if (!response.ok) throw new Error('भविष्यवाणी में त्रुटि');\n    \n    const data: PredictionResponse = await response.json();\n    return data.prediction;\n}\n\n// उपयोग\ngetPrediction([1.2, 3.4, 5.6])\n    .then(pred => console.log('परिणाम:', pred))\n    .catch(err => console.error(err));\n
\n\n

तरीका B: child_process के ज़रिए Python स्क्रिप्ट (बैकएंड के लिए)

\n

अगर आपको अलग सर्वर की ज़रूरत नहीं है, तो Node.js से सीधे Python चला सकते हैं। यह एक बार के कामों के लिए सुविधाजनक है — इमेज प्रोसेसिंग, रिपोर्ट जनरेशन।

\n
import { exec } from 'child_process';\nimport { promisify } from 'util';\n\nconst execPromise = promisify(exec);\n\nasync function runPythonScript(scriptPath: string, args: string[]): Promise<string> {\n    const command = `python3 ${scriptPath} ${args.join(' ')}`;\n    const { stdout, stderr } = await execPromise(command);\n    \n    if (stderr) throw new Error(`Python त्रुटि: ${stderr}`);\n    return stdout.trim();\n}\n\n// उदाहरण: Python को JSON भेजें\nconst result = await runPythonScript('./analyze.py', ['--data', '{"value": 42}']);\nconsole.log('Python ने जवाब दिया:', result);\n
\n

महत्वपूर्ण: यह तरीका माइक्रोसर्विस से धीमा है, लेकिन अलग सर्वर सेट करने की ज़रूरत नहीं है। प्रोटोटाइप और CI/CD के लिए उपयुक्त है।

\n\n

परिदृश्य 2: TypeScript + C++ — जबरदस्त स्पीड

\n

जब वीडियो, ऑडियो या क्रिप्टोग्राफी प्रोसेस करनी हो, तो Python काफी नहीं होता। यहाँ C++ और इसका शक्तिशाली साथी WebAssembly (WASM) काम आता है।

\n\n

C++ को WASM में कंपाइल करें और TypeScript से कॉल करें

\n

मान लीजिए, हमारे पास C++ का एक सरल फंक्शन है जो मैट्रिक्स गुणा को तेज़ करता है:

\n
// matrix.cpp\nextern "C" {\n    void multiply_matrices(float* a, float* b, float* result, int size) {\n        for (int i = 0; i < size; i++) {\n            for (int j = 0; j < size; j++) {\n                float sum = 0.0f;\n                for (int k = 0; k < size; k++) {\n                    sum += a[i * size + k] * b[k * size + j];\n                

ब्लॉग

पुस्तक अनुशंसाएँ