📖 Scenario: Imagine you are creating a small program to store information about a book. You want to see how TypeScript can guess the types of your variables without you telling it explicitly.
🎯 Goal: You will create variables with values and see how TypeScript automatically understands their types. Then you will write code that uses these variables, relying on TypeScript's type inference.
📋 What You'll Learn
Create variables with initial values without specifying types
Create a helper variable to hold a count
Use a function that uses the inferred types
Print the results to the console
💡 Why This Matters
🌍 Real World
When writing code, TypeScript helps by guessing types so you write less code and avoid mistakes.
💼 Career
Understanding type inference is important for working efficiently with TypeScript in real projects, improving code quality and developer productivity.
Progress0 / 4 steps
1
Create variables with initial values
Create a variable called title and set it to the string "The Great Gatsby". Then create a variable called pages and set it to the number 180.
Typescript
Hint
TypeScript will guess that title is a string and pages is a number because of the values you assign.
2
Add a helper variable
Create a variable called copiesSold and set it to the number 5000.
Typescript
Hint
This variable will also have its type inferred as a number.
3
Use a function with inferred types
Create a function called getBookSummary that takes no parameters and returns a string combining title and pages in this format: "The Great Gatsby has 180 pages.". Use the variables title and pages inside the function.
Typescript
Hint
TypeScript knows title is a string and pages is a number, so you can use them directly in the template string.
4
Print the result
Write a console.log statement to print the result of calling getBookSummary().
Typescript
Hint
This will show the combined string in the console, demonstrating how TypeScript inferred the types correctly.
Practice
(1/5)
1. What type does TypeScript automatically assign to the variable declared as let count = 10;?
easy
A. number
B. string
C. any
D. boolean
Solution
Step 1: Look at the assigned value
The variable count is assigned the value 10, which is a number.
Step 2: Understand TypeScript inference
TypeScript infers the type from the assigned value, so count is inferred as number.
Final Answer:
number -> Option A
Quick Check:
Value 10 means type number [OK]
Hint: Check the assigned value type to guess variable type [OK]
Common Mistakes:
Thinking unassigned variables get a type
Confusing number with string
Assuming type any by default
2. Which of the following is the correct way to declare a variable with automatic type inference in TypeScript?
easy
A. let name: string = 'Alice';
B. let score: any = 100;
C. let isActive: boolean;
D. let age = 25;
Solution
Step 1: Identify automatic type inference
TypeScript infers types when you assign a value without explicitly declaring the type.
Step 2: Check each option
let age = 25; declares age with an assigned value 25 and no explicit type, so TypeScript infers number.
Final Answer:
let age = 25; -> Option D
Quick Check:
Assigned value without explicit type means inference [OK]
Hint: Look for variables declared with value but no type [OK]
Common Mistakes:
Confusing explicit type with inferred type
Choosing variables declared without assignment
Assuming any type is inferred by default
3. What will be the inferred type and output of this code?
let message = 'Hello';
message = 123;
medium
A. TypeScript error: cannot assign number to string
B. message becomes 123 and type is number
C. message becomes '123' as string
D. No error, message is any type
Solution
Step 1: Identify inferred type from initial assignment
Variable message is assigned a string 'Hello', so TypeScript infers type string.
Step 2: Check reassignment compatibility
Assigning a number 123 to a variable inferred as string causes a type error.
Final Answer:
TypeScript error: cannot assign number to string -> Option A
Quick Check:
Inferred string type rejects number assignment [OK]
Hint: Inferred type fixes variable type, no mixed types allowed [OK]
Common Mistakes:
Assuming variable type changes on reassignment
Thinking TypeScript converts types automatically
Ignoring type errors on incompatible assignments
4. Find the error in this TypeScript code:
let data = [1, 2, 3];
data.push('four');
medium
A. No error, array can hold any type
B. Error: cannot push string into number array
C. Error: push method does not exist
D. Error: data is not initialized
Solution
Step 1: Identify inferred array type
Variable data is assigned an array of numbers, so TypeScript infers type number[].
Step 2: Check push argument type
Trying to push a string 'four' into a number[] array causes a type error.
Final Answer:
Error: cannot push string into number array -> Option B
Quick Check:
Array type enforces element types [OK]
Hint: Array inferred type fixes allowed element types [OK]
Common Mistakes:
Assuming arrays accept mixed types by default
Thinking push method is unavailable
Ignoring type errors on array element types
5. Given this code, what is the inferred type of result and why?
const numbers = [1, 2, 3];
const result = numbers.map(n => n * 2);
hard
A. void, because map does not return anything
B. any[], because map returns any type by default
C. number[], because map returns an array of numbers
D. number, because map returns a single number
Solution
Step 1: Identify input array type
numbers is an array of numbers, so type is number[].
Step 2: Understand map return type
Map applies a function to each element and returns a new array of the same length with transformed elements. Since the function returns n * 2 (a number), the result is number[].
Final Answer:
number[], because map returns an array of numbers -> Option C
Quick Check:
map returns array of transformed elements [OK]
Hint: map returns array with same length and inferred element type [OK]
Common Mistakes:
Thinking map returns a single value
Assuming map returns any[] by default
Confusing void return with map's return
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.