TypeScript 5.4: Fitur Terbaru yang Bikin Coding Makin Senang
Udah pada upgrade ke TypeScript 5.4 belum? Kalau belum, lo wajib baca artikel ini. Release terbaru TypeScript ini bawa beberapa fitur yang really helpful, terutama buat yang sehari-hari kerja pake Node.js atau React. Yuk, kita bedah satu-satu!
1. NoInfer: Controle Type Inference yang Lebih Cerdas
Ini dia fitur yang paling stolen perhatian. Sekarang TypeScript punya type modifier baru: NoInfer. Pada dasarnya, ini memungkinkan lo untuk “matikan” type inference di posisi tertentu, jadi TypeScript nggak akan nebak-nebak tipe data.
function create<T>(initial: NoInfer<T>) {
let current = initial;
return {
get: () => current,
set: (value: T) => { current = value; }
};
}
const state = createState("hello");
state.set("world"); // OK
state.set(123); // Error: Argument of type number is not assignable
Kenapa ini berguna? Coba bayangkan lo bikin library atau utility function yang punya generic type yang kompleks. Kadang-kadang TypeScript terlalu “pintar” dan nebak tipe yang lo nggak mau. Dengan NoInfer, lo bisa takeover control itu.
2. Improved Type Narrowing dalam Closures
Dulu, kalau lo punya conditional check di dalam function dan punya closure yang akses variabel itu, TypeScript kadang bingung dan jadi terlalu broad tipenya. Sekarang, TypeScript 5.4 lebih pintar dalam men-track perubahan ini.
function handleInput(input: string | null) {
if (input !== null) {
// Sekarang type narrowing ini bekerja dengan baik
// bahkan di dalam nested functions
const result = input.trim();
setTimeout(() => {
console.log(input.length); // TypeScript tau ini string
}, 1000);
}
}
3. Tuple in Template Literal Types
Buat yang sering main sama type-level programming, ini jadi lebih powerful. Sekarang lo bisa pake tuple di dalam template literal types.
type Route = "home" | "about" | "contact";
type Method = "get" | "post" | "put" | "delete";
type ApiEndpoint = [...Route, ...Method];
// menghasilkan: "homeget" | "homepost" | "homeput" | ...
4. Improved Import Attributes
TypeScript 5.4 juga improve cara handling import attributes. Ini penting buat yang mau pake JSON modules atau import dengan特定的 attributes.
// Dengan type: json
import config from "./config.json" with { type: "json" };
// Atau dengan assert
import data from "./data.json" assert { type: "json" };
5. Konsultasi Performance dan DX
Dari sisi developer experience, TypeScript 5.4 juga bawa beberapa improvement:
- Build performance yang lebih cepat — Especially untuk proyek besar
- Memory usage yang lebih efficient — Buat yang sering compile project besar, ini membantu
- Error messages yang lebih jelas — Sekarang pesan error kadang include suggestion langsung
Apakah Upgrade?
Jawabannya: Sangat wajib! Especially kalau lo lagi bangun aplikasi baru atau maintenance project yang aktif.
Cara upgrade mudah banget:
npm install typescript@latest --save-dev
Atau kalo pake Yarn:
yarn add typescript@latest -D
Jangan lupa juga update plugin di editor lo (VS Code, Zed, etc.) biar dapat pengalaman coding yang optimal.
Penutup
TypeScript terus berkembang dan setiap release selalu bawa sesuatu yang useful. Yang penting adalah stay updated dan coba fitur-fitur baru ini di project lo. Siapa tau ada yang jadi game-changer dalam workflow harian lo.
Ada pertanyaan atau mau share pengalaman pake TypeScript 5.4? Jangan ragu buat komen di bawah ya!
