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.