टाइपस्क्रिप्ट कंपाइलर API उन्नत उपयोग और उदाहरण
टाइपस्क्रिप्ट कंपाइलर API प्रोग्रामेटिक रूप से टाइपस्क्रिप्ट कोड के साथ इंटरैक्ट करने के लिए शक्तिशाली उपकरण प्रदान करता है। यह डेवलपर्स को परिष्कृत तरीकों से टाइपस्क्रिप्ट कोड का विश्लेषण, रूपांतरण और जनरेट करने की अनुमति देता है। यह लेख टाइपस्क्रिप्ट कंपाइलर API की क्षमताओं को दर्शाने के लिए उन्नत उपयोग परिदृश्यों और उदाहरणों पर विस्तार से चर्चा करता है।
टाइपस्क्रिप्ट कंपाइलर API के साथ आरंभ करना
उन्नत उपयोग में जाने से पहले, TypeScript कंपाइलर API को सेट करना आवश्यक है। इसमें TypeScript को इंस्टॉल करना और API के साथ इंटरैक्ट करने के लिए एक बुनियादी स्क्रिप्ट लिखना शामिल है।
import * as ts from 'typescript';
const sourceCode = `let x: number = 1;`;
const sourceFile = ts.createSourceFile('example.ts', sourceCode, ts.ScriptTarget.ES2015);
console.log(sourceFile.text);
टाइपस्क्रिप्ट कोड पार्स करना
कंपाइलर API टाइपस्क्रिप्ट कोड को एब्सट्रैक्ट सिंटैक्स ट्री (AST) में पार्स करने की अनुमति देता है। यह कोड विश्लेषण और रूपांतरण कार्यों के लिए उपयोगी हो सकता है।
const sourceFile = ts.createSourceFile('example.ts', sourceCode, ts.ScriptTarget.ES2015);
function visit(node: ts.Node) {
if (ts.isVariableDeclaration(node)) {
console.log(`Variable name: ${node.name.getText()}`);
}
ts.forEachChild(node, visit);
}
visit(sourceFile);
टाइपस्क्रिप्ट कोड को रूपांतरित करना
API टाइपस्क्रिप्ट कोड को बदलने के लिए उपकरण प्रदान करता है। यह उदाहरण दिखाता है कि कोड को संशोधित करने के लिए ट्रांसफॉर्मर का उपयोग कैसे किया जाता है।
function transformer<T extends ts.Node>(context: ts.TransformationContext) {
function visit(node: T): T {
if (ts.isVariableDeclaration(node)) {
return ts.updateVariableDeclaration(node, node.name, node.type, ts.createLiteral(42)) as T;
}
return ts.visitEachChild(node, visit, context);
}
return (rootNode: T) => ts.visitNode(rootNode, visit);
}
const result = ts.transform(sourceFile, [transformer]);
const printer = ts.createPrinter();
const transformedCode = printer.printFile(result.transformed[0] as ts.SourceFile);
console.log(transformedCode);
टाइपस्क्रिप्ट कोड उत्पन्न करना
प्रोग्रामेटिक रूप से TypeScript कोड जेनरेट करना API की एक और शक्तिशाली विशेषता है। यहाँ स्क्रैच से एक नई TypeScript फ़ाइल बनाने का एक उदाहरण दिया गया है।
const newSourceFile = ts.createSourceFile(
'newFile.ts',
`const greeting: string = 'Hello, TypeScript!';`,
ts.ScriptTarget.ES2015
);
const printer = ts.createPrinter();
const newCode = printer.printFile(newSourceFile);
console.log(newCode);
निदान और त्रुटियों से निपटना
कंपाइलर API निदान और त्रुटियों को संभालने के लिए तंत्र प्रदान करता है। यह उदाहरण दर्शाता है कि TypeScript कोड में समस्याओं की रिपोर्ट करने के लिए निदान का उपयोग कैसे किया जाए।
const program = ts.createProgram(['example.ts'], {});
const diagnostics = ts.getPreEmitDiagnostics(program);
diagnostics.forEach(diagnostic => {
const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
console.log(`Error: ${message}`);
});
निष्कर्ष
टाइपस्क्रिप्ट कंपाइलर API प्रोग्रामेटिक रूप से टाइपस्क्रिप्ट कोड के साथ काम करने के लिए सुविधाओं का एक समृद्ध सेट प्रदान करता है। इन उन्नत क्षमताओं में महारत हासिल करके, डेवलपर्स टाइपस्क्रिप्ट कोड का विश्लेषण, रूपांतरण और निर्माण करने के लिए शक्तिशाली उपकरण बना सकते हैं, जिससे अधिक कुशल और लचीले विकास वर्कफ़्लो बन सकते हैं।