Daftar Isi:

#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 dan export:
export class MyClass { ... }
import { MyClass } from './myclass';
  • Namespaces Mengelompokkan kode ke dalam namespace untuk mencegah konflik nama.

#TypeScript dengan Framework

  1. TypeScript dengan React. Pelajari penggunaan TypeScript dalam pengembangan aplikasi React, terutama bagaimana menulis components dengan TypeScript.
  2. TypeScript dengan Node.js. Implementasi TypeScript dalam proyek backend menggunakan Node.js.
  3. TypeScript dengan Angular. Karena Angular ditulis menggunakan TypeScript, ini adalah framework yang sangat cocok untuk dipelajari bersama TypeScript.

#Testing TypeScript

  1. Unit Testing Pelajari cara melakukan testing pada kode TypeScript dengan menggunakan framework testing seperti Jest, Mocha, atau Jasmine.

  2. 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

  1. Decorator Pelajari cara menggunakan dan membuat dekorator di TypeScript.
  2. Type Guards Gunakan penjaga tipe untuk memastikan bahwa suatu variabel memiliki tipe yang benar pada waktu proses.
  3. Type Inference dan Contextual Typing Optimalkan pemahaman tentang cara TypeScript secara otomatis menebak tipe data berdasarkan konteks.