Bird
Raised Fist0
Typescriptprogramming~5 mins

How TypeScript infers types automatically

Choose your learning style10 modes available
Introduction

TypeScript guesses the type of a value without you telling it. This helps catch mistakes early and makes coding easier.

When you declare a variable and assign a value right away.
When you write a function and return a value without specifying the return type.
When you create an array or object with initial values.
When you want TypeScript to help you by understanding your code automatically.
Syntax
Typescript
let variable = value;

function example() {
  return value;
}

TypeScript looks at the value on the right side to decide the type.

You don't have to write the type explicitly if TypeScript can figure it out.

Examples
TypeScript knows age is a number because 25 is a number.
Typescript
let age = 25;
TypeScript infers name as a string from the text "Alice".
Typescript
let name = "Alice";
The function greet returns a string, so TypeScript infers its return type as string.
Typescript
function greet() {
  return "Hello!";
}
TypeScript infers numbers as an array of numbers (number[]).
Typescript
const numbers = [1, 2, 3];
Sample Program

This program shows TypeScript guessing types for variables and function return values. count is a number, so double knows x is a number and returns a number.

Typescript
let count = 10;
let message = "You have " + count + " new messages.";

function double(x: number) {
  return x * 2;
}

const result = double(count);

console.log(message);
console.log(result);
OutputSuccess
Important Notes

If you don't assign a value when declaring a variable, TypeScript will give it the type any, which means it can be anything.

You can still add explicit types if you want to be clear or catch errors sooner.

Summary

TypeScript automatically guesses types from the values you assign.

This helps find mistakes and makes your code safer without extra work.

You can mix inferred types with explicit types as needed.

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