Bird
Raised Fist0
Typescriptprogramming~5 mins

Type annotation on function parameters in Typescript - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Type annotation on function parameters
O(n)
Understanding Time Complexity

When we add type annotations to function parameters, we want to know if it changes how long the function takes to run.

Does specifying types affect the speed or steps the program takes?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


function sumNumbers(numbers: number[]): number {
  let total = 0;
  for (const num of numbers) {
    total += num;
  }
  return total;
}

This function adds up all numbers in an array, with type annotations on the parameter and return value.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Looping through each number in the array.
  • How many times: Once for each item in the input array.
How Execution Grows With Input

Explain the growth pattern intuitively.

Input Size (n)Approx. Operations
10About 10 additions
100About 100 additions
1000About 1000 additions

Pattern observation: The number of steps grows directly with the number of items.

Final Time Complexity

Time Complexity: O(n)

This means the time to run grows in a straight line with the input size.

Common Mistake

[X] Wrong: "Adding type annotations makes the function slower because it adds extra work."

[OK] Correct: Type annotations are only for the developer and compiler; they do not add steps when the program runs.

Interview Connect

Understanding that type annotations do not affect runtime helps you focus on what really matters: the code's logic and efficiency.

Self-Check

"What if the function used nested loops over the input array? How would the time complexity change?"

Practice

(1/5)
1. What does the type annotation in the function parameter function greet(name: string) tell us?
easy
A. The function expects name to be a string.
B. The function will return a string.
C. The function does not accept any parameters.
D. The function expects name to be a number.

Solution

  1. Step 1: Understand the syntax of type annotation

    The colon : after name means we are telling TypeScript what type name should be.
  2. Step 2: Identify the type specified

    The type specified is string, so name must be a string.
  3. Final Answer:

    The function expects name to be a string. -> Option A
  4. Quick Check:

    Parameter type annotation = string [OK]
Hint: Look for colon after parameter name to find its type [OK]
Common Mistakes:
  • Confusing parameter type with return type
  • Ignoring the colon and thinking it's optional
  • Assuming no parameters are accepted
2. Which of the following is the correct way to add a type annotation for a number parameter age in a TypeScript function?
easy
A. function setAge(age = number) {}
B. function setAge(age: number) {}
C. function setAge(number age) {}
D. function setAge(age) : number {}

Solution

  1. Step 1: Recall correct syntax for parameter type annotation

    TypeScript uses a colon : after the parameter name to specify its type.
  2. Step 2: Check each option

    function setAge(age: number) {} uses age: number, which is correct. Others use invalid syntax.
  3. Final Answer:

    function setAge(age: number) {} -> Option B
  4. Quick Check:

    Parameter type syntax = colon after name [OK]
Hint: Use colon after parameter name for type [OK]
Common Mistakes:
  • Using equals sign instead of colon for type
  • Placing type before parameter name
  • Adding colon after parentheses instead of parameter
3. What will be the output of this TypeScript code?
function multiply(x: number, y: number): number {
  return x * y;
}

console.log(multiply(3, 4));
medium
A. 34
B. Error: Missing return type
C. undefined
D. 12

Solution

  1. Step 1: Understand function parameters and return

    The function takes two numbers and returns their product.
  2. Step 2: Calculate multiply(3, 4)

    3 times 4 equals 12, so the function returns 12.
  3. Final Answer:

    12 -> Option D
  4. Quick Check:

    3 * 4 = 12 [OK]
Hint: Multiply parameters as numbers to get output [OK]
Common Mistakes:
  • Confusing string concatenation with multiplication
  • Ignoring return type annotation
  • Expecting error due to missing type
4. Identify the error in this TypeScript function:
function greet(name string) {
  return `Hello, ${name}`;
}
medium
A. Incorrect use of backticks for string
B. Missing return type annotation
C. Missing colon between parameter name and type
D. Parameter name cannot be 'name'

Solution

  1. Step 1: Check parameter syntax

    The parameter name string is missing a colon : between name and string.
  2. Step 2: Confirm other parts are correct

    Backticks and parameter name are valid; return type annotation is optional.
  3. Final Answer:

    Missing colon between parameter name and type -> Option C
  4. Quick Check:

    Parameter type needs colon [OK]
Hint: Always put colon between parameter and type [OK]
Common Mistakes:
  • Omitting colon between parameter and type
  • Thinking return type is mandatory
  • Confusing string quotes with backticks
5. You want to write a function formatPrice that takes a number price and returns a string with a dollar sign. Which is the correct way to add type annotations to the parameter and return type?
hard
A. function formatPrice(price: number): string { return `$${price}`; }
B. function formatPrice(price): string { return `$${price}`; }
C. function formatPrice(price: string): number { return `$${price}`; }
D. function formatPrice(price: number) { return price; }

Solution

  1. Step 1: Determine parameter type

    The parameter price should be a number because it represents a price value.
  2. Step 2: Determine return type

    The function returns a string with a dollar sign, so return type is string.
  3. Step 3: Check options

    function formatPrice(price: number): string { return `$${price}`; } correctly annotates price: number and return type : string. Others have missing or wrong types.
  4. Final Answer:

    function formatPrice(price: number): string { return `$${price}`; } -> Option A
  5. Quick Check:

    Parameter number, return string [OK]
Hint: Parameter type matches input, return type matches output [OK]
Common Mistakes:
  • Omitting parameter type
  • Wrong return type annotation
  • Returning wrong data type
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