Function overloads
- TypeScript kursu
- Başlangıç
- Ders 45/89
- 4 dk
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.
Başlangıç kodu
// bicim adında bir fonksiyon tanımla
// deger parametresi number | string, dönüş türü string olsun
// "Sonuç: " + deger değerini döndür
// bicim(42) sonucunu yazdırÖrnek çözüm
function bicim(deger: number | string): string {
return "Sonuç: " + deger;
}
console.log(bicim(42));Beklenen çıktı
Sonuç: 42
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 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 Doğru cevap
Açıklama: 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.
2 İ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);
}
function cevir(deger: string): number;
function cevir(deger: number): number;
function cevir(deger: string | number): number {
return Number(deger);
}
Açıklama: İkinci imza <code>number</code> kabul eden bir çağrı desenini tanımlar; <code>string</code> ilk imzayla aynı olur, <code>boolean</code> ve <code>void</code> sayı dönüşümü için anlamsızdır.
3 Overloads kavramları
| Kavram | Anlamı |
|---|---|
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 |