Fonksiyon aşırı yüklemeleri ve çağrı imzaları
Farklı çağrı yapılarına yönelik aşırı yükleme imzaları bildirin ve esnek API'ler için nesne türlerinin içinde çağrı imzalarını kullanın.
Fonksiyon aşırı yüklemeleri ve çağrı imzaları, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 3 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 3 dersten oluşur.
Giriş
Amaç: aşırı yüklemeleri kullanarak farklı girdileri kabul edip farklı çıktılar döndüren işlevleri modelleyin ve geri çağrı benzeri API'ler için nesne türlerinde çağrı imzalarını açıklayın.
Aşırı yükleme düzeni
Aşırı yüklemeler, birden çok imza ve girdileri daraltıp doğru türü döndüren tek bir uygulama olarak bildirilir.
// 1) Overload signatures (no body)
function parse(input: string): number;
function parse(input: number): string;
// 2) Single implementation compatible with all overloads
function parse(input: string | number): string | number {
if (typeof input === "string") {
return input.length; // string -> number
} else {
return String(input); // number -> string
}
}
console.log(parse("TS")); // 2 (number)
console.log(parse(123)); // "123" (string)Çağrı imzaları
Bir çağrı imzası, bir nesne türünün aşırı yüklemelerle çağrılabilir olmasını sağlar (özellikleri olan çağrılabilir işlevler sunan kitaplıklar için kullanışlıdır).
type Stringify = {
(v: number): string;
(v: boolean): string;
};
const toStr: Stringify = (v: number | boolean) => {
return typeof v === "number" ? v.toFixed(1) : (v ? "true" : "false");
};
console.log(toStr(3));
console.log(toStr(false));Uygulamada daraltma
Uygulama, tüm aşırı yükleme biçimlerini ele almalıdır. Güvenli dallanma için in denetimlerini veya ayırt edici birleşimleri kullanın.
function area(value: { r: number } | { w: number; h: number }): number {
if ("r" in value) {
return Math.PI * value.r ** 2; // circle
}
return value.w * value.h; // rect
}
console.log(area({ r: 2 }));
console.log(area({ w: 3, h: 4 }));Aşırı yüklemeler ve birleşimler
Aşırı yüklemeler ve birleşimler:
- Aşırı yüklemeler, her çağrı için kesin dönüş türleri sağlar.
- Birleşimler tek bir imzayı korur; daha basittir ancak daha az özeldir.
- Çağrı yapan kod kesin dönüş türlerinden yararlanıyorsa aşırı yüklemeleri seçin.
DX ipuçları
İpuçları:
- Aşırı yükleme sayısını az ve anlaşılır tutun.
- Parametreler ve dönüşlerdeki farklılıkları belgeleyin.
- Kullanıcı deneyimini iyileştirdiği yerde kesin dönüş türlerini tercih edin.
Aşırı yükleme kontrolü
Hızlı kontrol: İşlev aşırı yüklemeleri hangi kalıpla doğru şekilde tanımlanır?
Özet
Özet: Her çağrı için kesin türler sağlamak üzere aşırı yüklemeleri, çağrılabilir nesneleri modellemek üzere çağrı imzalarını kullanın. Her durumu kapsamak için tek uygulama içinde daraltma yapın.
Sıkça Sorulan Sorular
“Fonksiyon aşırı yüklemeleri ve çağrı imzaları” dersi ücretsiz mi?
Evet — “Fonksiyon aşırı yüklemeleri ve çağrı imzaları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 3 dersten oluşur.
“Fonksiyon aşırı yüklemeleri ve çağrı imzaları” dersinde ne öğreneceğim?
Farklı çağrı yapılarına yönelik aşırı yükleme imzaları bildirin ve esnek API'ler için nesne türlerinin içinde çağrı imzalarını kullanın. TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 1. dersidir.
“Fonksiyon aşırı yüklemeleri ve çağrı imzaları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Fonksiyon aşırı yüklemeleri ve çağrı imzaları
- this parametresinin türü; void, never
- Onaylama işlevleri ve kullanıcı tanımlı tür koruyucuları