#Programming
TypeScript Tips yang Sering Saya Pakai

DANYAKMALLUNAUTHOR // SYS_ADMIN
PUBLISHED_AT
Setelah cukup lama menulis TypeScript, ada beberapa patterns dan fitur yang terus saya pakai berulang kali. Berikut rangkumannya.
satisfies Operator
Ditambahkan di TypeScript 4.9, satisfies memungkinkan kamu memvalidasi tipe sebuah ekspresi tanpa menghilangkan tipe spesifiknya.
type Color = "red" | "green" | "blue";
type Palette = Record<Color, string>;
// Tanpa satisfies — tipe hilang
const colors: Palette = {
red: "#ef4444",
green: "#22c55e",
blue: "#3b82f6",
};
// colors.red → string (tidak spesifik)
// Dengan satisfies — tipe tetap terjaga
const colors2 = {
red: "#ef4444",
green: "#22c55e",
blue: "#3b82f6",
} satisfies Palette;
// colors2.red → "#ef4444" (string literal)Utility Types Favorit
Partial<T> dan Required<T>
interface User {
id: number;
name: string;
email: string;
}
// Semua field opsional
type PatchUser = Partial<User>;
// Semua field wajib
type CompleteUser = Required<Partial<User>>;Pick<T, K> dan Omit<T, K>
// Ambil field tertentu
type UserPreview = Pick<User, "id" | "name">;
// Buang field tertentu
type UserWithoutId = Omit<User, "id">;Template Literal Types
Fitur ini powerful untuk membangun string types yang dinamis:
type Direction = "top" | "bottom" | "left" | "right";
type Padding = `p-${Direction}`;
// "p-top" | "p-bottom" | "p-left" | "p-right"Narrowing dengan Type Guards
function isError(value: unknown): value is Error {
return value instanceof Error;
}
try {
// ...
} catch (e) {
if (isError(e)) {
console.log(e.message); // TypeScript tahu ini Error
}
}TypeScript terus berkembang dengan cepat. Selalu worth it untuk cek TypeScript release notes setiap kali ada versi baru.
ARTIKEL TERKAIT
Memulai Blog dengan Next.js dan MDX
Panduan singkat membangun blog personal modern menggunakan Next.js App Router, Velite untuk konten MDX, dan Tailwind CSS v4.
Social engineering
Mengapa manusia menjadi celah keamanan terbesar dalam cyber security? Memahami metode rekayasa sosial dan taktik psikologis di balik peretasan manusia.