Bird
Raised Fist0
Typescriptprogramming~20 mins

Type annotation on function parameters in Typescript - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Type Annotation Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
1:30remaining
What is the output of this function call?
Consider this TypeScript function with parameter type annotations. What will be printed when calling greet('Alice')?
Typescript
function greet(name: string): string {
  return `Hello, ${name}!`;
}

console.log(greet('Alice'));
AError: Missing return type
B"Hello, Alice!"
CHello, Alice!
Dundefined
Attempts:
2 left
💡 Hint
Look at how the function returns a string and how console.log prints it.
❓ Predict Output
intermediate
1:30remaining
What error does this code produce?
What error will this TypeScript code cause when compiled?
Typescript
function multiply(x: number, y: number): number {
  return x * y;
}

multiply('2', 3);
ATypeError at runtime
BNo error, returns 6
CSyntaxError
DTypeScript compile error: Argument of type 'string' is not assignable to parameter of type 'number'
Attempts:
2 left
💡 Hint
Check the types of arguments passed to the function.
🔧 Debug
advanced
2:00remaining
Why does this function cause a compile error?
This function is intended to add two numbers. Why does TypeScript report an error?
Typescript
function add(a, b: number): number {
  return a + b;
}
AParameter 'b' should be optional
BParameter 'a' has no type annotation, causing an implicit any error
CReturn type is missing
DFunction body is missing a return statement
Attempts:
2 left
💡 Hint
Check the types of all parameters.
❓ Predict Output
advanced
1:30remaining
What is the output of this function with default parameter and type annotation?
What will this code print?
Typescript
function welcome(name: string = 'Guest'): string {
  return `Welcome, ${name}!`;
}

console.log(welcome());
AWelcome, Guest!
BWelcome, undefined!
CError: Missing argument
DWelcome, !
Attempts:
2 left
💡 Hint
Look at the default value for the parameter.
❓ Predict Output
expert
2:30remaining
What is the output of this function using union types in parameters?
What will this code print when calling formatId(123) and formatId('abc')?
Typescript
function formatId(id: number | string): string {
  if (typeof id === 'number') {
    return `ID-${id.toFixed(0)}`;
  } else {
    return `ID-${id.toUpperCase()}`;
  }
}

console.log(formatId(123));
console.log(formatId('abc'));
A
ID-123
ID-ABC
B
ID-123.0
ID-abc
C
ID-123
ID-abc
DError: toFixed not available on number
Attempts:
2 left
💡 Hint
Check how the function handles number and string types differently.

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