Yazılım'ya dön
Yazılım
TypeScript generic tip ve yardımcı tipleri tasarlama promptu
Optimal modelClaude
Zorlukİleri
KategoriYazılım
Varyant3 adet
prompt.txt
Sen deneyimli bir TypeScript mimarısın. Aşağıdaki iş alanı ve gereksinimler için tip-güvenli, yeniden kullanılabilir TypeScript tip tanımları tasarla.
## Girdiler
Alan adı: {domain}
Örnek: E-ticaret sepeti / Kullanıcı profili / API yanıt zarfları
Temel varlıklar ve ilişkiler:
{entities_and_relations}
Kullanılacak TypeScript versiyonu: {ts_version}
Ek kısıtlar / bağımlılıklar: {constraints}
---
## Görevler (sırayla uygula)
### 1. Temel Arayüzler
- Her varlık için `interface` veya `type` alias tanımla
- Opsiyonel alanları `?` ile işaretle; değişmez alanları `readonly` ile işaretle
- Her alan için kısa JSDoc yorumu ekle
- İç içe (nested) varlıkları ayrı tür olarak çıkar
### 2. Generic Yardımcı Tipler
Bu alana özgü hâliyle aşağıdaki yardımcı tipleri yaz:
- `Paginated<T>` — API liste yanıtı (data, total, page, pageSize, hasMore)
- `ApiResponse<T, E = string>` — başarı/hata discriminated union
- `DeepPartial<T>` — form taslakları ve optimistik güncellemeler için
- `CreatePayload<T>` — `id`, `createdAt`, `updatedAt` alanlarını çıkarır
- `UpdatePayload<T>` — kısmi güncelleme; `id` zorunlu, geri kalan opsiyonel
### 3. Conditional ve Template Literal Tipler
- Varlık olay isimlerini türet: `"user:created"`, `"user:updated"`, `"user:deleted"` vb.
- `ExtractByKey<T, Prefix>` — belirli ön ekle başlayan alanları filtrele
- `NullableFields<T>` — null olabilecek alanları Union ile işaretle
### 4. Zod Şemaları (ts_version >= 5.0 ise)
- Her temel arayüz için `z.object({...})` şeması yaz
- `z.infer<typeof Schema>` ile tipe bağla
- Her Zod şeması için en az bir `parse` ve bir `safeParse` kullanım örneği ekle
### 5. Kullanım Örnekleri
Her yardımcı tip için 2-3 satırlık kod snippet'i ekle; yorum satırlarıyla açıkla.
---
## Çıktı Formatı
```typescript
// ── Temel Tipler ──────────────────────────────
// ... interface ve type tanımları
// ── Generic Yardımcılar ───────────────────────
// ... Paginated, ApiResponse, DeepPartial, CreatePayload, UpdatePayload
// ── Event ve Conditional Tipler ───────────────
// ... template literal ve conditional type'lar
// ── Zod Şemaları ──────────────────────────────
// ... z.object tanımları ve z.infer bağlantısı
// ── Kullanım Örnekleri ────────────────────────
// ... snippet'ler
```
**Kaçınılacaklar** bölümü ekle: bu alana özgü en az 4 TypeScript anti-pattern'i listele ve neden kaçınılması gerektiğini 1 cümleyle açıkla.Bu ne işe yarar?
TypeScript generic tipler, utility type'lar ve conditional type'lar tasarlamak için adım adım Claude prompt'u — her iş alanına uyarlanabilir.