📖 Scenario: You are building a simple event handler system where functions are called back when an event happens.
🎯 Goal: Create a callback function type, use it to type a function parameter, and call the callback with a message.
📋 What You'll Learn
Create a callback type named Callback that accepts a single string parameter and returns void.
Create a function named triggerEvent that takes a message of type string and a callback of type Callback.
Inside triggerEvent, call the callback with the message.
Call triggerEvent with the message 'Hello, TypeScript!' and a callback that prints the message.
💡 Why This Matters
🌍 Real World
Callbacks are used in many programs to run code after something happens, like a button click or data loading.
💼 Career
Understanding callback types helps you write safer and clearer TypeScript code, which is important for frontend and backend development.
Progress0 / 4 steps
1
Create the callback type
Create a type alias called Callback for a function that takes a single string parameter named msg and returns void.
Typescript
Hint
Use type Callback = (msg: string) => void; to define the callback type.
2
Create the triggerEvent function
Create a function named triggerEvent that takes two parameters: message of type string and callback of type Callback.
Typescript
Hint
Define triggerEvent with parameters message: string and callback: Callback. Inside, call callback(message);.
3
Call triggerEvent with a callback
Call the function triggerEvent with the message 'Hello, TypeScript!' and a callback function that takes a parameter msg and prints it using console.log(msg).
Typescript
Hint
Call triggerEvent with the string and an arrow function that logs the message.
4
Display the output
Run the program and print the output to show the message Hello, TypeScript!.
Typescript
Hint
Run the code to see the message printed in the console.
Practice
(1/5)
1. What does a callback function type in TypeScript specify?
easy
A. The input parameters and return type of the callback function
B. The variable names used inside the callback function
C. The order in which functions are called
D. The number of times a function is called
Solution
Step 1: Understand callback function types
A callback function type defines what inputs (parameters) the callback expects and what it returns.
Step 2: Identify what is specified
It does not specify variable names, call order, or call count, only input and output types.
Final Answer:
The input parameters and return type of the callback function -> Option A
Quick Check:
Callback type = inputs and output [OK]
Hint: Callback types describe inputs and outputs only [OK]
Common Mistakes:
Confusing callback type with variable names
Thinking callback type controls call order
Assuming callback type limits call count
2. Which of the following is the correct TypeScript syntax to declare a callback type that takes a number and returns void?
easy
A. type Callback = (input: number) => void;
B. type Callback = (number) => void;
C. type Callback = (input: number) => number;
D. type Callback = void (input: number);
Solution
Step 1: Check correct syntax for callback type
In TypeScript, a function type is declared as (parameters) => returnType. Parameters must have names and types.
Step 2: Match the correct option
type Callback = (input: number) => void; correctly declares a function taking a number named 'input' and returning void.
Final Answer:
type Callback = (input: number) => void; -> Option A
3. What will be the output of this TypeScript code?
type Callback = (x: number) => number;
function applyCallback(n: number, cb: Callback) {
return cb(n) + 1;
}
const result = applyCallback(5, x => x * 2);
console.log(result);
medium
A. 10
B. 11
C. 6
D. Error
Solution
Step 1: Understand the callback and function call
The callback multiplies input by 2. applyCallback calls cb(5), which is 5*2=10, then adds 1.
Step 2: Calculate the final result
10 + 1 = 11, so console.log prints 11.
Final Answer:
11 -> Option B
Quick Check:
5*2+1 = 11 [OK]
Hint: Calculate callback result then add 1 [OK]
Common Mistakes:
Forgetting to add 1 after callback
Confusing callback return with input
Assuming callback returns void
4. Identify the error in this TypeScript code snippet:
type Callback = (msg: string) => void;
function greet(cb: Callback) {
cb(123);
}
medium
A. Function greet should not accept a callback
B. Callback should return a number, not void
C. Callback expects a string, but a number is passed
D. No error, code is correct
Solution
Step 1: Check callback type and usage
Callback expects a string parameter, but greet calls cb with 123 (a number).
Step 2: Identify type mismatch error
Passing a number where a string is expected causes a type error.
Final Answer:
Callback expects a string, but a number is passed -> Option C
Quick Check:
Type mismatch in callback argument [OK]
Hint: Match callback parameter types exactly [OK]
Common Mistakes:
Passing wrong argument type to callback
Ignoring callback return type
Assuming no error on type mismatch
5. You want to create a function processItems that takes an array of numbers and a callback. The callback should receive each number and return a string. Which is the correct callback type and function signature to ensure type safety?
hard
A. type Callback = (item: string) => number;
function processItems(items: string[], cb: Callback): number[];
B. type Callback = () => string;
function processItems(items: number[], cb: Callback): string[];
C. type Callback = (item: number) => void;
function processItems(items: number[], cb: Callback): void;
D. type Callback = (item: number) => string;
function processItems(items: number[], cb: Callback): string[];
Solution
Step 1: Define callback input and output types
The callback should take a number and return a string, so type Callback = (item: number) => string.
Step 2: Define function signature matching callback and array
processItems takes number[] and callback, returns string[] because it maps numbers to strings.
Final Answer:
type Callback = (item: number) => string;
function processItems(items: number[], cb: Callback): string[]; -> Option D
Quick Check:
Callback input number, output string [OK]
Hint: Match callback input/output with function parameters/return [OK]
Common Mistakes:
Mismatching callback parameter types
Wrong return type in callback or function
Ignoring array element types
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.