TypeScript Fonksiyon Tiplerine Giriş
TypeScript her şey için tip gerektirir. Buna fonksiyonlarınız da dahildir. Girdiler ve çıktılar için tipleri tanımlamanız gerekir.
Fonksiyon Sözdizimi
Girdi tiplerini ve bir çıktı tipini şu şekilde tanımlarsınız:
function add(x: number, y: number): number {
return x + y;
}
TypeScript ayrıca tip çıkarımı (type inference) kullanır. Çıktı tipini her zaman yazmanız gerekmez. Derleyici bunu sizin yerinize bulur.
Eğer fonksiyonunuz farklı tipler döndürüyorsa, TypeScript bunu halleder. Örneğin, bir fonksiyon bir sayı veya bir string döndürüyorsa, derleyici her ikisini de tespit eder.
Özel Dönüş Tipleri
- void: Bir fonksiyon hiçbir şey döndürmediğinde bunu kullanın.
- never: Bir fonksiyon hata fırlattığında veya programı durdurduğunda bunu kullanın.
Parametreler
Soru işareti kullanarak parametreleri isteğe bağlı hale getirebilirsiniz.
function makeProfile(name: string, age: number, url?: string) {
// code
}
Ayrıca varsayılan değerler de kullanabilirsiniz. Bu, özel sembollere gerek kalmadan bir parametreyi isteğe bağlı hale getirir.
function makeProfile(name: string, age: number, url: string = "www.example.com") {
return name + " visits " + url;
}
Callback Fonksiyonları
Fonksiyonlar birer değerdir. Onları argüman olarak geçebilirsiniz. Bir callback tipini tanımlamak için şu sözdizimini kullanın:
function makePage(func: (n: string, a: number, u?: string) => string, param1: string, param2: number) {
func(param1, param2);
}
Callback içindeki parametre isimlerinin bir önemi yoktur. Sadece tipler önemlidir.
Fonksiyon Dizileri
Bir fonksiyon listesine ihtiyacınız varsa, onları o fonksiyon tipinde bir dizi olarak tanımlayın.
function applyMath(funcs: ((a: number, b: number) => number)[], x: number, y: number) {
// code
}
Rest Parametreleri
Herhangi bir sayıda argümanı kabul etmek için spread operatörünü kullanın. Bu, tüm girdileri bir dizi içinde saklar.
function sum(...numbers: number[]) {
// code
}
sum(1, 2, 3);
Kaynak: https://dev.to/jsha/introduction-to-typescript-function-types-hin