Bird
Raised Fist0
Typescriptprogramming~3 mins

How TypeScript infers types automatically - Why You Should Know This

Choose your learning style10 modes available
The Big Idea

Discover how TypeScript quietly understands your code so you don't have to spell everything out!

The Scenario

Imagine you are writing a program and you have to tell the computer the type of every single variable by hand, like saying "this is a number" or "this is a string" everywhere.

It feels like filling out a long form for every little thing you do.

The Problem

Manually writing types for every variable is slow and boring.

You might make mistakes or forget to update types when your code changes.

This can cause errors that are hard to find and fix.

The Solution

TypeScript automatically guesses the type of variables based on the values you give them.

This means you write less code and avoid many mistakes.

The computer helps you by understanding your code better without extra work.

Before vs After
✗ Before
let age: number = 30;
let name: string = "Alice";
✓ After
let age = 30;
let name = "Alice";
What It Enables

You can write cleaner code faster while still catching mistakes early.

Real Life Example

When building a website, you can quickly create variables for user data without typing their types, and TypeScript will still warn you if you try to use them incorrectly.

Key Takeaways

Manual type declarations slow you down and cause errors.

TypeScript guesses types automatically to save time.

This makes your code easier to write and safer to run.

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