TypeScript
Function overloads
Fonksiyon aşırı yüklemesini öğrenirsin.
Function overloads
Fonksiyon aşırı yükleme (overloading), bir fonksiyonun farklı parametre desenleri için birden çok tür imzası tanımlamasını sağlar. Önce imzaları, sonra tek bir uygulama gövdesi yazarsın.
function bicim(deger: number): string;
function bicim(deger: string): string;
function bicim(deger: number | string): string {
return "Sonuç: " + deger;
}
İmzalar farklı çağrı desenlerini, gövde ise ortak uygulamayı tanımlar.
Aşırı yükleme uygulaması
Uygulama imzası çağıranlar tarafından görülmez; yalnızca aşırı yükleme imzaları görünür. Uygulama gövdesi tüm imzaların durumlarını ele almalıdır. Bu, tek bir fonksiyonun farklı şekillerde çağrılabilmesini sağlar.
function cevir(deger: string): number;
function cevir(deger: number): number;
function cevir(deger: string | number): number {
return Number(deger);
}
Aşırı yükleme, tek fonksiyona farklı türlerde çağrı yapmayı mümkün kılar.
Uygulama Birleşik tür parametreli fonksiyon yaz
bicim adında bir fonksiyon tanımla; deger parametresi number | string ve dönüş türü string olsun. Fonksiyon "Sonuç: " + deger değerini döndürsün. bicim(42) çağrısının sonucunu console.log ile yazdır.
Örnek çözümü göster
function bicim(deger: number | string): string {
return "Sonuç: " + deger;
}
console.log(bicim(42));
Kendini test et
-
Fonksiyon aşırı yüklemenin (overloading) amacı nedir?
- Fonksiyonları daha hızlı çalıştırmak
- Parametre türlerini engellemek
- Birden çok değer döndürmek
- Farklı çağrı desenleri için birden çok tür imzası sağlamak
Cevabı göster
Farklı çağrı desenleri için birden çok tür imzası sağlamak — Aşırı yükleme, tek fonksiyonun farklı parametre türleri veya sayıları için ayrı imzalar sunmasını sağlar; bu, çağrı yerinde doğru tür denetimini mümkün kılar.
-
İkinci aşırı yükleme imzasını tamamla
function cevir(deger: string): number;
function cevir(deger: ____): number;
function cevir(deger: string | number): number {
return Number(deger);
}
Cevabı göster
function cevir(deger: string): number;
function cevir(deger: number): number;
function cevir(deger: string | number): number {
return Number(deger);
}
-
Overloads kavramları
- function f(a: number): string;
- Aşırı yükleme imzası
- function f(a: number | string): string { ... }
- Uygulama gövdesi
- Overload signatures
- Çağrı desenlerini tanımlar
- Implementation
- Tüm durumları ele alır
Sıradaki ders: Özet - Fonksiyonlar