Artikel & Sumber Daya #
Mempelajari TypeScript dari dokumentasi dan tutorial adalah langkah awal yang baik, tapi menjadi mahir membutuhkan paparan yang lebih luas — membaca bagaimana engineer di perusahaan teknologi besar menyelesaikan masalah nyata, mengikuti perkembangan ekosistem, dan memahami trade-off di balik setiap keputusan teknis. Halaman ini mengkurasi sumber daya yang paling berguna dan diperbarui secara berkala — dari dokumentasi resmi, buku, kursus video, hingga blog teknis yang konsisten menghasilkan konten berkualitas tinggi.
Dokumentasi Resmi #
Dokumentasi resmi adalah sumber paling akurat dan selalu terbaru. Selalu jadikan ini referensi pertama sebelum mencari di tempat lain.
TypeScript #
| Sumber | URL | Keterangan |
|---|---|---|
| TypeScript Handbook | typescript-lang.org/docs/handbook | Panduan resmi lengkap — dari tipe dasar hingga fitur lanjutan |
| TypeScript Playground | typescriptlang.org/play | Editor online untuk eksperimen tanpa setup lokal |
| Release Notes | typescriptlang.org/docs/handbook/release-notes | Changelog fitur baru di setiap versi TypeScript |
| TSConfig Reference | typescriptlang.org/tsconfig | Referensi lengkap semua opsi tsconfig.json |
Database dan Cache #
| Sumber | URL | Keterangan |
|---|---|---|
| MongoDB Node.js Driver | mongodb.github.io/node-mongodb-native | Dokumentasi resmi driver MongoDB untuk Node.js/TypeScript |
| Elasticsearch JS Client | elastic.co/docs/api/elasticsearch/javascript | Referensi API dan panduan official client TypeScript |
| ioredis | github.com/redis/ioredis | Dokumentasi library Redis untuk Node.js dengan dukungan TypeScript |
| memjs | github.com/memcachier/memjs | Dokumentasi library Memcached untuk Node.js |
| Redis Commands | redis.io/commands | Referensi lengkap semua perintah Redis |
Runtime dan Ekosistem #
| Sumber | URL | Keterangan |
|---|---|---|
| Node.js Docs | nodejs.org/docs | Dokumentasi resmi Node.js dan standard library-nya |
| Bun Docs | bun.sh/docs | Dokumentasi runtime Bun — alternatif Node.js dengan TypeScript native |
| Deno Manual | docs.deno.com | Dokumentasi Deno — runtime TypeScript-first dengan permission system |
| npm Docs | docs.npmjs.com | Panduan manajemen paket dengan npm |
Buku #
Buku memberikan pemahaman yang lebih sistematis dan mendalam dibanding artikel atau video. Berikut buku-buku yang paling direkomendasikan untuk TypeScript dan topik terkait.
TypeScript #
Programming TypeScript — Boris Cherny Buku terlengkap tentang TypeScript yang membahas sistem tipe secara mendalam — dari dasar hingga type-level programming. Cocok untuk developer yang ingin benar-benar memahami cara kerja type system TypeScript, bukan sekadar menggunakannya.
Effective TypeScript — Dan Vanderkam 52 cara konkret untuk menulis TypeScript yang lebih baik. Setiap item membahas satu kesalahan atau anti-pattern umum beserta solusinya, dilengkapi penjelasan mengapa solusi tersebut lebih baik. Format yang padat dan langsung ke poin menjadikan buku ini referensi yang sering dibuka kembali.
TypeScript Deep Dive — Basarat Ali Syed Tersedia gratis online di gitbook.io/read/book/basarat/typescript — pembahasannya sangat detail terutama untuk bagian compiler internals dan deklarasi tipe.
Desain dan Arsitektur Sistem #
Designing Data-Intensive Applications — Martin Kleppmann Buku wajib bagi siapapun yang bekerja dengan database, caching, dan sistem terdistribusi. Membahas trade-off di balik berbagai pilihan teknis — kapan pakai SQL vs NoSQL, bagaimana replikasi dan partisi bekerja, konsistensi vs ketersediaan. Sangat relevan untuk memahami konteks di balik MongoDB, Redis, dan Elasticsearch.
Database Internals — Alex Petrov Membahas bagaimana database bekerja dari dalam — B-tree, LSM-tree, storage engine, protokol konsensus terdistribusi. Bacaan yang berat tapi memberi fondasi yang kuat untuk membuat keputusan teknis yang lebih baik.
Clean Architecture — Robert C. Martin Prinsip-prinsip arsitektur yang berlaku lintas bahasa dan framework. Membantu memahami bagaimana memisahkan concern dalam aplikasi TypeScript yang kompleks — di mana logika bisnis berakhir dan lapisan infrastruktur (database, cache) dimulai.
Kursus dan Video #
TypeScript #
Total TypeScript — Matt Pocock (totaltypescript.com) Seri workshop interaktif yang membahas TypeScript dari perspektif praktis. Matt Pocock dikenal karena penjelasannya yang sangat jelas tentang topik yang kompleks seperti generics, conditional types, dan template literal types. Ada konten gratis yang sudah sangat berharga sebelum mempertimbangkan versi berbayarnya.
TypeScript Full Course — Traversy Media (YouTube) Pengenalan yang solid untuk developer yang baru mulai. Cocok sebagai titik awal sebelum masuk ke sumber yang lebih mendalam.
Execute Program — Gary Bernhardt (executeprogram.com) Platform belajar dengan pendekatan spaced repetition — materi dipelajari dalam sesi pendek dan diulang secara berkala. Konten TypeScript-nya sangat direkomendasikan karena memaksa kamu benar-benar memahami materi, bukan sekadar menontonnya.
Database dan Sistem Terdistribusi #
CMU Database Group — YouTube Rekaman kuliah database dari Carnegie Mellon University — tersedia gratis di YouTube. Seri ini mencakup storage engine, query optimizer, concurrency control, dan distribusi data dengan kedalaman akademis yang jarang ditemukan di tempat lain.
Redis University — university.redis.com Kursus resmi dari tim Redis, tersedia gratis. Mencakup dasar Redis, struktur data, use case production, dan Redis Streams.
Blog dan Newsletter #
Blog-blog ini konsisten menghasilkan konten teknis berkualitas tinggi dan ditulis oleh praktisi yang bekerja di sistem skala besar.
Teknikal Umum #
The Pragmatic Engineer — blog.pragmaticengineer.com Newsletter dan blog yang membahas engineering di perusahaan teknologi besar. Topiknya mencakup sistem skala besar, desain database, dan karier engineering. Salah satu newsletter teknis paling direkomendasikan saat ini.
High Scalability — highscalability.com Kumpulan artikel tentang bagaimana perusahaan besar (Netflix, Twitter, Uber, dll) membangun dan menskalakan sistem mereka. Sering menyebut trade-off antara berbagai pilihan database dan caching.
Martin Fowler’s Blog — martinfowler.com Blog klasik yang membahas pola desain, arsitektur, dan praktik rekayasa perangkat lunak. Artikel-artikelnya tentang caching pattern dan data management sangat relevan.
TypeScript dan JavaScript #
Matt Pocock’s Blog — mattpocock.com Artikel mendalam tentang TypeScript — khususnya tipe-tipe yang kompleks. Penjelasannya selalu disertai contoh konkret yang bisa langsung dipraktikkan.
Josh Goldberg — joshuakgoldberg.com Maintainer typescript-eslint yang menulis tentang TypeScript tooling, linting, dan praktik terbaik dalam proyek TypeScript skala besar.
2ality — 2ality.com (Dr. Axel Rauschmayer) Blog yang sangat detail tentang JavaScript dan TypeScript — termasuk penjelasan mendalam tentang fitur-fitur baru ES2023+. Artikel-artikelnya panjang tapi sangat komprehensif.
Database Spesifik #
MongoDB Blog — mongodb.com/blog Artikel resmi dari tim MongoDB tentang pattern, performa, dan fitur baru. Bagian “Best Practices” sangat berguna untuk deployment production.
Elastic Blog — elastic.co/blog Panduan, use case, dan best practice langsung dari tim yang membangun Elasticsearch. Topiknya mencakup relevance tuning, performa query, dan arsitektur cluster.
Redis Blog — redis.com/blog Artikel tentang fitur Redis, use case production, dan panduan performa dari tim Redis.
Tools dan Utilitas #
Development #
TypeScript Tooling:
tsc — TypeScript compiler resmi
ts-node — jalankan TypeScript langsung tanpa compile
tsx — alternatif ts-node yang lebih cepat (menggunakan esbuild)
tsup — bundler TypeScript yang zero-config
typescript-eslint — ESLint rules khusus untuk TypeScript
Testing:
vitest — test runner cepat dengan dukungan TypeScript native
jest — test runner yang paling umum, butuh konfigurasi tambahan untuk TS
@faker-js/faker — generate data dummy untuk testing
Type Utilities:
zod — schema validation dengan type inference otomatis
type-fest — koleksi utility types yang berguna
ts-pattern — pattern matching yang type-safe untuk TypeScript
Database dan ORM #
ORM / Query Builder:
Prisma — ORM TypeScript-first dengan schema yang eksplisit
DrizzleORM — query builder ringan dengan type inference penuh
TypeORM — ORM berbasis dekorator untuk TypeScript
Kysely — query builder SQL yang fully type-safe
MongoDB:
mongodb — official driver (dibahas di series ini)
mongoose — ODM populer dengan schema validation
Elasticsearch:
@elastic/elasticsearch — official client (dibahas di series ini)
Cache:
ioredis — Redis client untuk Node.js (dibahas di series ini)
memjs — Memcached client untuk Node.js (dibahas di series ini)
node-cache — in-process cache sederhana tanpa dependency eksternal
Monitoring dan Observability #
APM dan Tracing:
OpenTelemetry (@opentelemetry/sdk-node) — standar observability yang vendor-neutral
Sentry — error tracking dengan dukungan TypeScript yang baik
Datadog APM — monitoring performa untuk Node.js
Logging:
pino — logger yang sangat cepat dengan output JSON terstruktur
winston — logger yang fleksibel dengan banyak transport
bunyan — logger berbasis stream untuk Node.js
Referensi Cepat #
Cheatsheet TypeScript #
// Utility Types yang paling sering digunakan
Partial<T> // semua field menjadi opsional
Required<T> // semua field menjadi wajib
Readonly<T> // semua field tidak bisa dimodifikasi
Pick<T, K> // ambil subset field dari T
Omit<T, K> // buang subset field dari T
Record<K, V> // object dengan key K dan value V
Exclude<T, U> // keluarkan U dari union T
Extract<T, U> // ambil hanya U dari union T
NonNullable<T> // keluarkan null dan undefined dari T
ReturnType<T> // ambil return type dari fungsi T
Parameters<T> // ambil parameter types dari fungsi T
Awaited<T> // unwrap Promise type
// Type Guards
function isString(val: unknown): val is string {
return typeof val === "string";
}
// Conditional Types
type IsArray<T> = T extends any[] ? true : false;
// Template Literal Types
type EventName = `on${Capitalize<string>}`;
// Mapped Types
type Nullable<T> = { [K in keyof T]: T[K] | null };
// Infer
type UnwrapPromise<T> = T extends Promise<infer U> ? U : T;
Perintah Redis yang Sering Digunakan #
# String
SET key value EX 3600 # set dengan TTL 1 jam
GET key
INCR key
MGET key1 key2 key3
# Hash
HSET key field value
HGET key field
HGETALL key
HINCRBY key field 1
# List
RPUSH key value # tambah ke kanan
LPOP key # ambil dari kiri (FIFO)
LRANGE key 0 -1 # ambil semua
# Set
SADD key member
SMEMBERS key
SISMEMBER key member
# Sorted Set
ZADD key score member
ZRANGE key 0 -1 WITHSCORES
ZREVRANGE key 0 9 # top 10
# Utility
TTL key # sisa waktu hidup
EXPIRE key 3600 # set TTL
DEL key
SCAN 0 MATCH "prefix:*" COUNT 100
Operator Query MongoDB yang Sering Digunakan #
// Perbandingan
{ field: { $eq: val } } // sama dengan
{ field: { $ne: val } } // tidak sama
{ field: { $gt: val } } // lebih besar
{ field: { $gte: val } } // lebih besar atau sama
{ field: { $lt: val } } // lebih kecil
{ field: { $lte: val } } // lebih kecil atau sama
{ field: { $in: [a, b] } } // ada dalam array
{ field: { $nin: [a, b] } } // tidak ada dalam array
// Logika
{ $and: [kondisi1, kondisi2] }
{ $or: [kondisi1, kondisi2] }
{ $not: { kondisi } }
// Array
{ field: { $elemMatch: { kondisi } } }
{ field: { $size: n } }
{ field: { $all: [a, b] } }
// Update
{ $set: { field: val } }
{ $unset: { field: "" } }
{ $inc: { field: n } }
{ $push: { field: val } }
{ $pull: { field: val } }
{ $addToSet: { field: val } }
Komunitas #
Bergabung dengan komunitas adalah cara terbaik untuk belajar dari orang lain dan tetap update dengan perkembangan ekosistem.
Forum dan Diskusi:
TypeScript Discord — discord.gg/typescript
Komunitas resmi TypeScript dengan channel per topik
r/typescript — reddit.com/r/typescript
Diskusi, pertanyaan, dan showcase project TypeScript
Stack Overflow — stackoverflow.com/questions/tagged/typescript
Referensi untuk pertanyaan spesifik yang sudah terjawab
GitHub Repositories:
microsoft/TypeScript — source code dan issue tracker TypeScript
DefinitelyTyped — github.com/DefinitelyTyped/DefinitelyTyped
Repositori @types/* — contribute tipe untuk library tanpa tipe
Konferensi:
TypeScript Congress — typescriptcongress.com
Konferensi tahunan khusus TypeScript
NodeConf — konferensi Node.js dengan banyak konten TypeScript
Ringkasan #
- Dokumentasi resmi selalu jadi referensi pertama — TypeScript Handbook, MongoDB Driver docs, Elasticsearch client docs, dan ioredis docs adalah sumber paling akurat dan terbaru.
- Buku untuk fondasi yang kuat — Programming TypeScript untuk sistem tipe, Designing Data-Intensive Applications untuk memahami trade-off database dan caching di level arsitektur.
- Total TypeScript dan Execute Program adalah dua sumber belajar TypeScript interaktif yang paling direkomendasikan saat ini — keduanya memaksa kamu aktif berlatih, bukan sekadar menonton.
- Tools penting untuk ekosistem TypeScript — Zod untuk validasi dengan type inference, Prisma atau DrizzleORM untuk database, Vitest untuk testing, dan pino untuk logging terstruktur.
- Pantau blog teknis secara rutin — The Pragmatic Engineer, 2ality, dan Matt Pocock’s blog adalah sumber yang konsisten menghasilkan konten berkualitas tinggi tentang TypeScript dan engineering secara umum.
- Bergabung dengan TypeScript Discord untuk mendapatkan jawaban cepat dari komunitas dan mengikuti diskusi tentang fitur TypeScript yang sedang dikembangkan.