Learn
← Previous Next →

Hari 28: Migration JS ke TS

55 min Last updated 09 Apr 2026

Strategi Migrasi JavaScript ke TypeScript

1. Incremental Migration

// tsconfig.json
{
    "compilerOptions": {
        "allowJs": true,       // izinkan file .js
        "checkJs": true,       // type check .js files
        "strict": false,       // mulai longgar, ketatkan bertahap
        "noImplicitAny": false // awal: boleh implicit any
    }
}
// Rename .js → .ts satu per satu

2. JSDoc Type Annotations untuk .js

// Di file JavaScript, gunakan JSDoc
/**
 * @param {string} nama
 * @param {number} umur
 * @returns {string}
 */
function sapa(nama, umur) {
    return `${nama} (${umur})`;
}

3. Declaration Files (.d.ts)

// legacy.d.ts — untuk library tanpa types
declare module "legacy-lib" {
    export function doSomething(x: string): number;
    export const version: string;
}
import { doSomething } from "legacy-lib"; // sekarang type-safe!

💡 Notice: Monitor adalah satu-satunya yang lolos: elektronik, harga 2.5jt (antara 100rb-5jt). Laptop harganya 8.5jt melebihi maxHarga. Mouse bukan kategori elektronik.

Assignment

Konversikan fungsi JavaScript berikut ke TypeScript dengan tipe yang proper. Tambahkan interface dan tipe return yang tepat.

Expected output:

Monitor: Rp 2,500,000
TS index.ts
Solution
Output