Const nesneler ve union tipler kullanarak tip güvenli enum alternatifleri.
class=class="text-emerald-400">"text-gray">// Instead of: enum Status { Active, Inactive, Pending }
class=class="text-emerald-400">"text-gray">// Use a const object:
const Status = {
Active: class=class="text-emerald-400">"text-emerald-400">'active',
Inactive: class=class="text-emerald-400">"text-emerald-400">'inactive',
Pending: class=class="text-emerald-400">"text-emerald-400">'pending',
} as const
type Status = (typeof Status)[keyof typeof Status]
class=class="text-emerald-400">"text-gray">// Result: class=class="text-emerald-400">"text-emerald-400">'active' | class=class="text-emerald-400">"text-emerald-400">'inactive' | class=class="text-emerald-400">"text-emerald-400">'pending'
class=class="text-emerald-400">"text-gray">// With display labels
const StatusLabel: Record<Status, string> = {
active: class=class="text-emerald-400">"text-emerald-400">'Active',
inactive: class=class="text-emerald-400">"text-emerald-400">'Inactive',
pending: class=class="text-emerald-400">"text-emerald-400">'Pending',
}
class=class="text-emerald-400">"text-gray">// Type guard
function isStatus(value: string): value is Status {
return Object.values(Status).includes(value as Status)
}
class=class="text-emerald-400">"text-gray">// Usage
function getLabel(status: Status): string {
return StatusLabel[status]
}
console.log(getLabel(Status.Active)) class=class="text-emerald-400">"text-gray">// class=class="text-emerald-400">"text-emerald-400">'Active'Daha iyi tree-shaking ve tip çıkarımı için enum'ları const nesnelerle değiştirin. Bu kalıp otomatik tamamlama, tip güvenliği sağlar ve değerler JSON serileştirme ile doğal olarak çalışan düz stringlerdir.
Fikrinizi nasıl hayata geçirebileceğimizi konuşalım. İlk konseptten üretime hazır ürüne kadar — yanınızdayız.