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