מבוא לסוגי פונקציות ב-TypeScript
TypeScript דורשת טיפוסים (types) לכל דבר. זה כולל גם את הפונקציות שלך. עליך להגדיר טיפוסים עבור קלטים ופלטים.
תחביר פונקציות
אתה מגדיר טיפוסי קלט וטיפוס פלט בצורה הבאה:
function add(x: number, y: number): number {
return x + y;
}
TypeScript משתמשת גם בהסקת טיפוסים (type inference). אין צורך תמיד לכתוב את טיפוס הפלט; הקומפיילר מוצא אותו עבורך.
אם הפונקציה שלך מחזירה טיפוסים שונים, TypeScript מטפלת בכך. לדוגמה, אם פונקציה מחזירה מספר או מחרוזת (string), הקומפיילר מזהה את שניהם.
טיפוסי החזרה מיוחדים
void: השתמש בזה כאשר פונקציה אינה מחזירה דבר.never: השתמש בזה כאשר פונקציה זורקת שגיאה או עוצרת את התוכנית.
פרמטרים
ניתן להפוך פרמטרים לאופציונליים באמצעות סימן שאלה.
function makeProfile(name: string, age: number, url?: string) {
// code
}
ניתן גם להשתמש בערכי ברירת מחדל. זה הופך את הפרמטר לאופציונלי ללא צורך בסימנים מיוחדים.
function makeProfile(name: string, age: number, url: string = "www.example.com") {
return name + " visits " + url;
}
פונקציות Callback
פונקציות הן ערכים. ניתן להעביר אותן כארגומנטים. כדי להגדיר טיפוס callback, השתמש בתחביר הבא:
function makePage(func: (n: string, a: number, u?: string) => string, param1: string, param2: number) {
func(param1, param2);
}
שמות הפרמטרים ב-callback אינם משנים. רק הטיפוסים חשובים.
מערכים של פונקציות
אם אתה זקוק לרשימה של פונקציות, הגדר אותן כמערך של אותו טיפוס פונקציה.
function applyMath(funcs: ((a: number, b: number) => number)[], x: number, y: number) {
// code
}
פרמטרי Rest
השתמש באופרטור ה-spread כדי לקבל מספר שרירותי של ארגומנטים. פעולה זו שומרת את כל הקלטים בתוך מערך.
function sum(...numbers: number[]) {
// code
}
sum(1, 2, 3);
מקור: https://dev.to/jsha/introduction-to-typescript-function-types-hin