📖 Scenario: Imagine you are building a simple calculator app that adds two numbers. You want to make sure the inputs are always numbers to avoid mistakes.
🎯 Goal: Learn how to use type annotations in TypeScript to make your code safer and easier to understand.
📋 What You'll Learn
Create variables with explicit type annotations
Use type annotations in function parameters and return type
See how TypeScript catches errors when types don't match
💡 Why This Matters
🌍 Real World
Type annotations are used in real apps to avoid bugs caused by wrong data types, like adding numbers and strings by mistake.
💼 Career
Many programming jobs require writing clear and safe code using TypeScript's type system to improve code quality and teamwork.
Progress0 / 4 steps
1
Create variables with type annotations
Create two variables called num1 and num2 with type number. Assign 5 to num1 and 10 to num2.
Typescript
Hint
Use let variableName: type = value; to declare variables with types.
2
Add a function with type annotations
Create a function called add that takes two parameters a and b both of type number. The function should return a number which is the sum of a and b.
Typescript
Hint
Write the function with parameter types and return type like function add(a: number, b: number): number.
3
Use the function with the variables
Create a variable called result with type number and assign it the value returned by calling add with num1 and num2.
Typescript
Hint
Call the function and store the result in a typed variable.
4
Print the result
Use console.log to print the value of result.
Typescript
Hint
Use console.log(result); to show the sum in the console.
Practice
(1/5)
1. Why do we use type annotations in TypeScript? let age: number = 25;
easy
A. To tell the computer what kind of data to expect
B. To make the program run faster
C. To hide the data from other parts of the program
D. To automatically fix errors in the code
Solution
Step 1: Understand the purpose of type annotations
Type annotations specify the kind of data a variable should hold, like number or string.
Step 2: Identify the benefit in the example
In let age: number = 25;, the annotation number tells the computer to expect a number value.
Final Answer:
To tell the computer what kind of data to expect -> Option A
Quick Check:
Type annotations = tell data type [OK]
Hint: Type annotations describe data type before running code [OK]
Common Mistakes:
Thinking type annotations speed up program execution
Believing type annotations hide data
Assuming type annotations fix errors automatically
2. Which of the following is the correct way to add a type annotation for a string variable in TypeScript?
easy
A. let name = string 'Alice';
B. let name == 'Alice': string;
C. let name: 'Alice' = string;
D. let name: string = 'Alice';
Solution
Step 1: Recall TypeScript syntax for type annotations
The correct syntax is let variableName: type = value;.
Step 2: Match syntax with options
let name: string = 'Alice'; matches this syntax: let name: string = 'Alice'; is correct.
Final Answer:
let name: string = 'Alice'; -> Option D
Quick Check:
Correct syntax = let name: string = 'Alice'; [OK]
Hint: Use colon after variable name for type [OK]
Common Mistakes:
Using '=' instead of ':' for type annotation
Placing type after value
Using double equals '==' for assignment
3. What will happen when you run this TypeScript code?
let count: number = 10;
count = 'ten';
medium
A. The code runs but count remains 10
B. The code runs and count becomes 'ten'
C. A compile-time error occurs because 'ten' is not a number
D. A runtime error occurs when assigning 'ten'
Solution
Step 1: Check the declared type of count
Variable count is declared as number.
Step 2: Analyze the assignment of a string to a number
Assigning 'ten' (a string) to count violates the type annotation.
Step 3: Understand TypeScript behavior
TypeScript will show a compile-time error before running the code.
Final Answer:
A compile-time error occurs because 'ten' is not a number -> Option C
Quick Check:
Type mismatch = compile-time error [OK]
Hint: Assign values matching declared type to avoid errors [OK]
Common Mistakes:
Thinking TypeScript allows wrong type assignments at runtime
Confusing compile-time and runtime errors
Assuming variable value stays unchanged silently
4. Identify the error in this TypeScript code and choose the fix:
function greet(name) {
return 'Hello, ' + name.toUpperCase();
}
greet(123);
medium
A. Call greet with a string instead of a number
B. Add type annotation: name: string in function parameter
C. Remove the function parameter
D. Change toUpperCase() to toString()
Solution
Step 1: Understand the error cause
The function expects a string to call toUpperCase(), but 123 is a number.
Step 2: Fix by adding type annotation
Adding name: string tells TypeScript to expect a string and catch wrong calls like greet(123).
Final Answer:
Add type annotation: name: string in function parameter -> Option B
Quick Check:
Type annotation prevents wrong argument types [OK]
Hint: Add parameter types to catch wrong argument types early [OK]
Common Mistakes:
Ignoring type annotations and relying on runtime errors
Changing method instead of fixing parameter type
Removing parameters instead of typing them
5. You have this TypeScript function:
function calculateArea(width, height) {
return width * height;
}
How can adding type annotations improve this function?
hard
A. By ensuring both width and height are numbers to avoid wrong calculations
B. By making the function run faster
C. By allowing width and height to be any type
D. By automatically converting strings to numbers
Solution
Step 1: Identify the problem without type annotations
Without types, width and height can be any type, causing wrong results if strings or other types are passed.
Step 2: Add type annotations to improve safety
Adding width: number and height: number ensures only numbers are accepted, preventing errors.
Final Answer:
By ensuring both width and height are numbers to avoid wrong calculations -> Option A
Quick Check:
Type annotations improve input safety [OK]
Hint: Type inputs to avoid wrong data causing bugs [OK]
Common Mistakes:
Thinking type annotations speed up execution
Assuming type annotations convert data types automatically
Allowing any type defeats purpose of annotations
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.