Required ve Pick
- TypeScript kursu
- Orta seviye
- Ders 25/89
- 4 dk
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
// 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
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<Uye, "ad" | "eposta"></code> ne üretir?
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ç
interface Urun { ad: string; fiyat: number; stok: number; }
type Ozet = ____<Urun, "ad" | "fiyat">;
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 |