Bali menyang Artikel
2024-01-10•10 menit maca

Pola Desain TypeScript Lanjutan

TypeScriptDesign PatternsAdvanced

Delengen pola TypeScript kanggo nggawe aplikasi sing luwih kuat lan aman saka kesalahan tipe.

Pola Desain TypeScript Lanjutan

TypeScript nduwe fitur sing migunani kanggo nggunakake pola desain. Iki sawetara teknik sing luwih lanjut.

Builder Pattern

Pola Builder nggawe objek sing ruwet langkah demi langkah:

class QueryBuilder {
  private query: string = '';

  select(fields: string[]): this {
    this.query += `SELECT ${fields.join(', ')} `;
    return this;
  }

  from(table: string): this {
    this.query += `FROM ${table} `;
    return this;
  }

  where(condition: string): this {
    this.query += `WHERE ${condition}`;
    return this;
  }

  build(): string {
    return this.query;
  }
}

// Usage
const query = new QueryBuilder()
  .select(['name', 'email'])
  .from('users')
  .where('active = true')
  .build();

Generic Repository Pattern

Gawe lapisan akses data sing dipriksa tipene:

interface Repository<T> {
  findById(id: string): Promise<T | null>;
  findAll(): Promise<T[]>;
  save(entity: T): Promise<T>;
  delete(id: string): Promise<void>;
}

class UserRepository implements Repository<User> {
  // Implementation
}

Discriminated Unions

Tangani state sing beda-beda kanthi aman saka kesalahan tipe:

type Result<T> =
  | { status: 'success'; data: T }
  | { status: 'error'; error: Error };

function handleResult<T>(result: Result<T>) {
  if (result.status === 'success') {
    console.log(result.data);
  } else {
    console.error(result.error);
  }
}

Kesimpulan

Pola iki nggunakake sistem tipe TypeScript supaya kode luwih aman lan gampang dirumat.