Number type behavior in Typescript - Time & Space Complexity
When working with numbers in TypeScript, it's helpful to know how operations on numbers behave as the input size changes.
We want to see how the time to do number operations grows when we do many calculations.
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 code adds up all numbers in an array and returns the total sum.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Adding each number to the total inside a loop.
- How many times: Once for each number in the input array.
As the number of items grows, the total additions grow at the same pace.
| 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; double the items, double the work.
Time Complexity: O(n)
This means the time to add numbers grows in a straight line with how many numbers there are.
[X] Wrong: "Adding numbers is always instant, so time doesn't grow with input size."
[OK] Correct: Even though each addition is fast, doing many additions one after another takes more time as the list grows.
Understanding how simple number operations scale helps you explain performance clearly and shows you know how code behaves with bigger data.
"What if we used nested loops to add numbers in pairs? How would the time complexity change?"
Practice
In TypeScript, which of the following is true about the number type?
Solution
Step 1: Understand TypeScript number type
TypeScript uses a singlenumbertype for all numeric values, whether whole or decimal.Step 2: Compare options with this fact
Only "It represents both whole numbers and decimals using the same type." correctly states that both whole and decimal numbers share the samenumbertype.Final Answer:
It represents both whole numbers and decimals using the same type. -> Option AQuick Check:
TypeScript number = whole + decimal [OK]
- Thinking integers and decimals have separate types
- Assuming number type is only for floats
- Believing you must declare int or float explicitly
Which of the following is the correct way to declare a variable x as a number with value 42 in TypeScript?
?
Solution
Step 1: Check variable declaration syntax
In TypeScript, to declare a number variable, uselet x: number = value;.Step 2: Validate each option
let x: number = 42;correctly declaresxas a number with value 42. Other options use wrong types or values, such as assigning a string to a number type, which is invalid.Final Answer:
let x: number = 42; -> Option CQuick Check:
Correct number declaration = let x: number = 42; [OK]
let x: number = value; for numbers [OK]- Assigning string values to number variables
- Missing the type annotation when needed
- Using quotes around numeric values
What is the output of the following TypeScript code?
const a: number = 5; const b: number = 2.5; const c = a + b; console.log(c);
Solution
Step 1: Add the two numbers
Variableais 5 (integer),bis 2.5 (decimal). Adding gives 5 + 2.5 = 7.5.Step 2: Check console output
Theconsole.log(c)prints the sum, which is 7.5.Final Answer:
7.5 -> Option DQuick Check:
5 + 2.5 = 7.5 [OK]
- Treating numbers as strings and concatenating
- Rounding automatically to integers
- Expecting a syntax or runtime error
Identify the error in this TypeScript code snippet:
let num: number = 10; num = "20"; console.log(num);
Solution
Step 1: Check variable type and assignment
numis declared asnumber, but assigned a string "20" later, which is invalid in TypeScript.Step 2: Identify the error type
This causes a type error because TypeScript enforces type safety.Final Answer:
Assigning a string to a variable declared as number causes a type error. -> Option AQuick Check:
Type mismatch error = assigning string to number [OK]
- Ignoring type mismatch errors
- Thinking TypeScript allows implicit type changes
- Confusing let and const as error causes
Consider the following TypeScript code:
const values = [1, 2.5, 3, 4.75]; const integersOnly = values.filter(v => Number.isInteger(v)); console.log(integersOnly);
What will be the output?
Solution
Step 1: Understand Number.isInteger usage
Thefilterkeeps only values whereNumber.isInteger(v)returns true, i.e., whole numbers.Step 2: Apply filter to array
From[1, 2.5, 3, 4.75], only 1 and 3 are integers, so the filtered array is[1, 3].Final Answer:
[1, 3] -> Option BQuick Check:
Filter integers only = [1, 3] [OK]
- Expecting decimals to pass Number.isInteger
- Confusing filter output with original array
- Using isInteger incorrectly as a method on numbers
Ready to prove it?
Pass the test and this pattern moves unknown
