TypeScript Tutorial
Estimated reading: 3 minutes 53 views

6️⃣ 🧠 Functions in TypeScript – Parameters, Types, and Syntax Explained (2025)


🧲 Introduction – Why Learn Functions in TypeScript?

Functions are the core building blocks of any TypeScript application. With static typing, TypeScript enhances JavaScript functions by introducing function types, optional/default parameters, and rest/destructured arguments. Whether you’re defining reusable logic or building APIs, mastering functions helps you write cleaner, more predictable, and bug-free code.

🎯 In this guide, you’ll explore:

  • How to define functions with strong type checks
  • Use of optional, default, and rest parameters
  • Arrow functions, anonymous functions, and function constructors
  • Type-safe function signatures for better developer experience

📘 Topics Covered

🧩 Topic📌 Description
TS FunctionsDefine and call standard functions with typed inputs and outputs
Function TypesDescribe function signatures using types
Optional ParametersPass arguments that aren’t always required
Default ParametersSet fallback values for missing parameters
Arrow FunctionsConcise function expressions with lexical this binding
Rest ParametersAccept variable number of arguments
Parameter DestructuringBreak objects/arrays into named variables within parameters
Anonymous FunctionsUse unnamed functions inline
Function ConstructorCreate functions dynamically (less common, advanced usage)

🔧 TypeScript Functions – Basic Syntax

function greet(name: string): string {
  return `Hello, ${name}`;
}

console.log(greet("Vaibhav")); // Hello, Vaibhav

✅ Strong typing ensures only correct argument types are passed.


🧾 Function Types – Typing the Signature

let add: (a: number, b: number) => number;
add = function (x, y) {
  return x + y;
};

📍 Define both parameter and return types for clarity.


🟡 Optional Parameters – Add Flexibility

function log(message: string, userId?: string): void {
  console.log(message, userId);
}

⚠️ Optional parameters must come after required ones.


⚙️ Default Parameters – Set Fallback Values

function multiply(a: number, b: number = 1): number {
  return a * b;
}

🛠️ Default values are used when no argument is provided.


✨ Arrow Functions – Compact & Lexical this

const square = (x: number): number => x * x;

🔗 Arrow functions inherit this from the outer scope.


📦 Rest Parameters – Multiple Arguments

function sum(...nums: number[]): number {
  return nums.reduce((acc, val) => acc + val, 0);
}

🚀 Accepts a variable number of arguments as an array.


📤 Parameter Destructuring – Break Down Inputs

function display({ name, age }: { name: string; age: number }) {
  console.log(`${name} is ${age} years old.`);
}

🎯 Destructuring improves readability and avoids boilerplate.


🕶️ Anonymous Functions – Useful for Callbacks

setTimeout(function () {
  console.log("Hello after 2 seconds");
}, 2000);

💡 Often used inline in higher-order functions.


🧪 Function Constructor – Dynamic Function Creation

const subtract = new Function("a", "b", "return a - b");
console.log(subtract(10, 5)); // 5

⚠️ Rarely used due to security and performance concerns.


📌 Summary – Recap & Next Steps

TypeScript functions provide clarity and safety through typed parameters, return values, and enhanced syntax features. Mastering these helps build maintainable and robust logic.

🔍 Key Takeaways:

  • Use explicit function types for readability
  • Apply optional/default/rest parameters based on needs
  • Prefer arrow functions for concise syntax and scope binding
  • Avoid function constructors unless absolutely necessary

⚙️ Real-World Relevance:
Typed functions are vital in teams and large apps—enabling IDE autocomplete, preventing misuse, and improving maintainability.


❓ FAQ – TypeScript Functions

❓ What is the difference between optional and default parameters?

✅ Optional parameters may be omitted; default parameters provide fallback values when not passed.


❓ When should I use arrow functions in TypeScript?

✅ Use them for shorter syntax and when you need this to refer to the outer lexical scope.


❓ How do I define a function type in TypeScript?

✅ Use the format (param1: type, param2: type) => returnType to describe the signature.


❓ Is using Function constructor recommended?

✅ Not generally. It should be avoided due to security, readability, and performance concerns.


Share Now :

Leave a Reply

Your email address will not be published. Required fields are marked *

Share

6️⃣ 🧠 Functions in TypeScript

Or Copy Link

CONTENTS
Scroll to Top