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.