Penggunaan Lanjutan dan Contoh API Kompiler TypeScript
TypeScript Compiler API menyediakan alat yang hebat untuk berinteraksi secara terprogram dengan kode TypeScript. API ini memungkinkan pengembang untuk menganalisis, mengubah, dan membuat kode TypeScript dengan cara yang canggih. Artikel ini membahas skenario penggunaan tingkat lanjut dan contoh untuk mengilustrasikan kemampuan TypeScript Compiler API.
Memulai dengan API Kompiler TypeScript
Sebelum menyelami penggunaan tingkat lanjut, penting untuk menyiapkan TypeScript Compiler API. Ini melibatkan pemasangan TypeScript dan penulisan skrip dasar untuk berinteraksi dengan 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);
Penguraian Kode TypeScript
API Kompiler memungkinkan penguraian kode TypeScript menjadi pohon sintaksis abstrak (AST). Ini dapat berguna untuk tugas analisis dan transformasi kode.
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);
Mengubah Kode TypeScript
API menyediakan alat untuk mengubah kode TypeScript. Contoh ini menunjukkan cara menggunakan transformator untuk mengubah kode.
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);
Membuat Kode TypeScript
Pembuatan kode TypeScript secara terprogram merupakan fitur hebat lainnya dari API. Berikut ini contoh cara membuat file TypeScript baru dari awal.
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);
Penanganan Diagnostik dan Kesalahan
API Kompiler menyediakan mekanisme untuk menangani diagnostik dan kesalahan. Contoh ini menunjukkan cara menggunakan diagnostik untuk melaporkan masalah dalam kode 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}`);
});
Kesimpulan
TypeScript Compiler API menawarkan serangkaian fitur yang lengkap untuk bekerja dengan kode TypeScript secara terprogram. Dengan menguasai kemampuan tingkat lanjut ini, pengembang dapat membuat alat yang hebat untuk menganalisis, mengubah, dan membuat kode TypeScript, yang menghasilkan alur kerja pengembangan yang lebih efisien dan fleksibel.