CodeBlanks Logo Icon CodeBlanks

Required ve Pick

Required ile zorunlu, Pick ile seçmeyi öğrenirsin.

Required ve Pick

Required<T>, T'deki isteğe bağlı özellikleri zorunlu yapar; ? işaretini kaldırır. Pick<T, K> ise T'nin yalnızca K'da listelenen özelliklerini alır; gerisini atar. İkisi birlikte bir arayüzü daraltıp sıkılaştırmak için kullanılır.

interface Uye {
  ad: string;
  eposta?: string;
}
type ZorunluUye = Required<Uye>;
type SadeceAd = Pick<Uye, "ad">;

Required vs Partial

Required, Partial'ın tersidir. Bir arayüzde isteğe bağlı bırakılan alanlar, bazı fonksiyonlarda zorunlu olabilir. Örneğin kayıt sırasında eposta zorunluysa Required<Uye> kullanırsın. Böylece aynı temel türü farklı sıkılıkta yeniden kullanırsın.

Uygulama Zorunlu üye ve özet

Uye arayüzünü ad: string ve eposta?: string ile tanımla. kayit(u: Required<Uye>): void fonksiyonu yaz; gövdesi console.log(u.eposta) ile epostayı yazdırsın. kayit({ ad: "Selin", eposta: "s@x.com" }) çağrısı yap.

Başlangıç kodu

index.ts
// Uye arayüzünü ad: string ve eposta?: string ile tanımla
// kayit fonksiyonu parametresi Uye'nin zorunlu hali olsun
// gövdede console.log ile u.eposta yazdır
// ad ve eposta içeren nesneyle çağır

Örnek çözüm

index.ts
interface Uye {
  ad: string;
  eposta?: string;
}
function kayit(u: Required<Uye>): void {
  console.log(u.eposta);
}
kayit({ ad: "Selin", eposta: "s@x.com" });

Beklenen çıktı

s@x.com

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>Pick&lt;Uye, "ad" | "eposta"&gt;</code> ne üretir?

index.ts
interface Uye { ad: string; eposta?: string; }
type T = Pick<Uye, "ad" | "eposta">;
  • Tüm özellikleri isteğe bağlı bir tür
  • ad ve eposta çıkarılmış bir tür
  • Tüm özellikleri zorunlu bir tür
  • Yalnızca ad ve eposta özellikli bir tür Doğru cevap

Açıklama: Pick, verilen özellik adlarını tutar, gerisini atar. İsteğe bağlı yapmak Partial, çıkarmak Omit, zorunlu yapmak Required işidir.

2 Pick ile özellik seç

Soru
interface Urun { ad: string; fiyat: number; stok: number; }
type Ozet = ____<Urun, "ad" | "fiyat">;
Cevap
interface Urun { ad: string; fiyat: number; stok: number; }
type Ozet = Pick<Urun, "ad" | "fiyat">;

Açıklama: Belirli özellikleri seçmek için Pick kullanılır. Partial hepsini isteğe bağlı yapar; Required zorunlu yapar; Omit çıkarır.

3 Required ve Pick parçaları

Kavram Anlamı
Required<T> İsteğe bağlıları zorunlu yapar
Pick<T, K> K'daki özellikleri seçer
Pick<Uye, "ad"> Tek özellik seçimi
Required<Uye> eposta zorunlu olur

Orta seviye bölümündeki tüm dersler