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