Bird
Raised Fist0
Typescriptprogramming~15 mins

How TypeScript infers types automatically - Try It Yourself

Choose your learning style10 modes available
How TypeScript infers types automatically
📖 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

  1. Step 1: Look at the assigned value

    The variable count is assigned the value 10, which is a number.
  2. Step 2: Understand TypeScript inference

    TypeScript infers the type from the assigned value, so count is inferred as number.
  3. Final Answer:

    number -> Option A
  4. 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

  1. Step 1: Identify automatic type inference

    TypeScript infers types when you assign a value without explicitly declaring the type.
  2. Step 2: Check each option

    let age = 25; declares age with an assigned value 25 and no explicit type, so TypeScript infers number.
  3. Final Answer:

    let age = 25; -> Option D
  4. 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

  1. Step 1: Identify inferred type from initial assignment

    Variable message is assigned a string 'Hello', so TypeScript infers type string.
  2. Step 2: Check reassignment compatibility

    Assigning a number 123 to a variable inferred as string causes a type error.
  3. Final Answer:

    TypeScript error: cannot assign number to string -> Option A
  4. 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

  1. Step 1: Identify inferred array type

    Variable data is assigned an array of numbers, so TypeScript infers type number[].
  2. Step 2: Check push argument type

    Trying to push a string 'four' into a number[] array causes a type error.
  3. Final Answer:

    Error: cannot push string into number array -> Option B
  4. 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

  1. Step 1: Identify input array type

    numbers is an array of numbers, so type is number[].
  2. 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[].
  3. Final Answer:

    number[], because map returns an array of numbers -> Option C
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard