Parameters type in Typescript - Time & Space Complexity
We want to see how the time to run a function changes when we use different types of parameters.
How does the input type affect the work the function does?
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;
}
const values = [1, 2, 3, 4, 5];
sumNumbers(values);
This function adds up all numbers in an array and returns the total.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Looping through each number in the array.
- How many times: Once for every number in the input array.
As the array gets bigger, the function does more additions, one for each number.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 additions |
| 100 | 100 additions |
| 1000 | 1000 additions |
Pattern observation: The work grows directly with the number of items.
Time Complexity: O(n)
This means the time to finish grows in a straight line with the input size.
[X] Wrong: "Changing the parameter type to a single number instead of an array will keep the same time complexity."
[OK] Correct: A single number means no loop is needed, so the time does not grow with input size anymore.
Understanding how input types affect time helps you explain your code clearly and shows you think about efficiency.
"What if the parameter was a nested array of numbers? How would the time complexity change?"
Practice
function greet(name: string) {}Solution
Step 1: Understand parameter type declaration
In TypeScript, writingname: stringmeans the function expects a string value forname.Step 2: Effect of parameter type
This helps catch errors if a different type is passed and makes the code clearer.Final Answer:
It tells the function what type of value to expect for that parameter. -> Option AQuick Check:
Parameter type = expected value type [OK]
- Thinking parameter type changes return type
- Assuming parameter becomes optional automatically
- Believing parameter type converts data
Solution
Step 1: Check TypeScript parameter syntax
The correct syntax uses a colon between the parameter name and its type:x: number.Step 2: Identify correct option
function add(x: number) {} matches this syntax exactly, others have syntax errors.Final Answer:
function add(x: number) {} -> Option BQuick Check:
Parameter syntax = name: type [OK]
- Omitting colon between name and type
- Placing type before parameter name
- Using equals sign instead of colon
function multiply(a: number, b: number) {
return a * b;
}
console.log(multiply(3, 4));Solution
Step 1: Understand function parameters and operation
The function takes two numbers and returns their product.Step 2: Calculate the output
Callingmultiply(3, 4)returns 3 * 4 = 12.Final Answer:
12 -> Option AQuick Check:
3 * 4 = 12 [OK]
- Concatenating numbers as strings
- Expecting error due to types
- Confusing return value with parameter list
function greet(name string) {
console.log('Hello, ' + name);
}Solution
Step 1: Check parameter syntax
The parameter declarationname stringis missing a colon betweennameandstring.Step 2: Correct syntax
It should bename: stringto be valid TypeScript.Final Answer:
Missing colon between parameter name and type. -> Option DQuick Check:
Parameter syntax requires colon [OK]
- Omitting colon in parameter type
- Thinking parameter type goes after function name
- Assuming function must return value
function setFlag(flag: boolean) {
return flag ? 'ON' : 'OFF';
}Solution
Step 1: Check parameter type expected
The function expects abooleanparameter.Step 2: Analyze each call
Calls withtrue,false, andBoolean(0)are booleans. Passing'true'(a string) causes a type error.Final Answer:
setFlag('true') -> Option CQuick Check:
String passed instead of boolean causes error [OK]
- Passing string instead of boolean
- Confusing Boolean() constructor with string
- Assuming any truthy value is allowed
Ready to prove it?
Pass the test and this pattern moves unknown
