Daftar Isi:
- type data dasar
- Fungsi di TypeScript
- Object-Oriented Programming (OOP) di TypeScript
- tipe lanjutan
- Modularisasi dan Pengelolaan Kode
- TypeScript dengan Framework
- Testing TypeScript
- Optimasi dan Penerapan di Produksi
- Advanced Patterns
#type data dasar
Pelajari tipe data bawaan seperti string
, number
, boolean
, array
, tuple
, enum
, dll.
let name: string = "John";
let age: number = 30;
let isAdmin: boolean = true;
let hobbies: string[] = ["Reading", "Sports"];
Union Types & Literal Types Gunakan tipe data yang fleksibel:
let result: string | number;
result = "Success";
result = 404;
#Fungsi di TypeScript
- Penulisan Fungsi Dasar Definisikan tipe parameter dan tipe nilai balik fungsi:
function add(a: number, b: number): number {
return a + b;
}
- Optional Parameters dan Default Parameters Parameter opsional dan nilai default:
function greet(name: string, greeting?: string): string {
return `${greeting || "Hello"}, ${name}`;
}
- Arrow Functions Menulis fungsi dengan pendekatan modern:
const multiply = (a: number, b: number): number => a * b;
#Object-Oriented Programming (OOP) di TypeScript
- Class & Object Pelajari bagaimana membuat kelas dan objek:
class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet() {
return `Hello, my name is ${this.name}`;
}
}
const john = new Person("John", 25);
- Inheritance dan Polymorphism Gunakan pewarisan dan polimorfisme:
class Employee extends Person {
role: string;
constructor(name: string, age: number, role: string) {
super(name, age);
this.role = role;
}
}
- Encapsulation (Public, Private, Protected) Menggunakan public, private, dan protected untuk kontrol akses anggota kelas.
- Interfaces Definisikan kontrak atau struktur dengan interface:
interface Car {
brand: string;
speed: number;
drive(): void;
}
class Tesla implements Car {
brand = "Tesla";
speed = 200;
drive() {
console.log("Driving at " + this.speed);
}
}
#tipe lanjutan
- Intersection & Union Types Kombinasikan tipe menggunakan & (Intersection) atau | (Union).
- Generic Types Pahami bagaimana membuat kode yang dapat bekerja dengan berbagai tipe data:
function identity<T>(arg: T): T {
return arg;
}
let output = identity<string>("Hello");
- Utility Types
Gunakan tipe utilitas bawaan seperti
Partial
,Pick
,Omit
, dll. - Mapped Types & Conditional Types Manipulasi tipe secara dinamis berdasarkan kondisi.
#Modularisasi dan Pengelolaan Kode
- Modules
Pelajari cara membagi kode menjadi beberapa file dengan
import
danexport
:
export class MyClass { ... }
import { MyClass } from './myclass';
- Namespaces Mengelompokkan kode ke dalam namespace untuk mencegah konflik nama.
#TypeScript dengan Framework
- TypeScript dengan React. Pelajari penggunaan TypeScript dalam pengembangan aplikasi React, terutama bagaimana menulis components dengan TypeScript.
- TypeScript dengan Node.js. Implementasi TypeScript dalam proyek backend menggunakan Node.js.
- TypeScript dengan Angular. Karena Angular ditulis menggunakan TypeScript, ini adalah framework yang sangat cocok untuk dipelajari bersama TypeScript.
#Testing TypeScript
-
Unit Testing Pelajari cara melakukan testing pada kode TypeScript dengan menggunakan framework testing seperti Jest, Mocha, atau Jasmine.
-
Type Checking dan Error Handling Manfaatkan fitur pengecekan tipe TypeScript untuk menemukan bug lebih awal.
#Optimasi dan Penerapan di Produksi
- Linting dan Formating Gunakan alat seperti ESLint dan Prettier untuk menjaga kualitas kode.
- TypeScript Config (tsconfig.json) Pelajari pengaturan pada file tsconfig.json untuk mengontrol bagaimana TypeScript dikompilasi. Build & Deployment Implementasikan TypeScript ke dalam CI/CD pipeline, dan pelajari cara untuk bundling (misalnya menggunakan Webpack atau Parcel).
#Advanced Patterns
- Decorator Pelajari cara menggunakan dan membuat dekorator di TypeScript.
- Type Guards Gunakan penjaga tipe untuk memastikan bahwa suatu variabel memiliki tipe yang benar pada waktu proses.
- Type Inference dan Contextual Typing Optimalkan pemahaman tentang cara TypeScript secara otomatis menebak tipe data berdasarkan konteks.