0
0
Typescriptprogramming~20 mins

Null and undefined types in Typescript - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Null and Undefined Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of function with null and undefined
What is the output of this TypeScript code?
Typescript
function checkValue(x: number | null | undefined) {
  if (x === null) return "Null";
  if (x === undefined) return "Undefined";
  return x * 2;
}

console.log(checkValue(null));
console.log(checkValue(undefined));
console.log(checkValue(5));
A"Null"\n"Undefined"\n10
Bnull\nundefined\n10
C"Undefined"\n"Null"\n10
DTypeError at runtime
Attempts:
2 left
💡 Hint
Check how the function compares the input to null and undefined explicitly.
Predict Output
intermediate
1:30remaining
Value of variable after assignment
What is the value of variable result after running this code?
Typescript
let value: string | null | undefined = undefined;
value = value ?? "default";
const result = value;
Aundefined
B"default"
Cnull
DTypeError
Attempts:
2 left
💡 Hint
The nullish coalescing operator (??) returns the right side if the left side is null or undefined.
🔧 Debug
advanced
2:00remaining
Why does this code cause an error?
This TypeScript code causes a compile-time error. What is the reason?
Typescript
function greet(name: string | null) {
  console.log("Hello, " + name.toUpperCase());
}

greet(null);
AtoUpperCase() is not a function in TypeScript
BFunction greet must return a string
C"name" can be null, so calling toUpperCase() causes an error
Dnull is not assignable to parameter of type string
Attempts:
2 left
💡 Hint
Think about what happens if name is null and you call a method on it.
🧠 Conceptual
advanced
1:30remaining
Difference between null and undefined in TypeScript
Which statement correctly describes the difference between null and undefined in TypeScript?
A<code>null</code> means a variable has no value; <code>undefined</code> means a variable has not been assigned a value
B<code>undefined</code> means a variable has no value; <code>null</code> means a variable has not been assigned a value
C<code>null</code> and <code>undefined</code> are exactly the same in TypeScript
D<code>null</code> is a type; <code>undefined</code> is a value
Attempts:
2 left
💡 Hint
Think about what happens when you declare a variable but don't assign it, versus assigning null explicitly.
Predict Output
expert
2:30remaining
Output of complex null and undefined checks
What is the output of this TypeScript code?
Typescript
function test(x: string | null | undefined) {
  switch (x) {
    case null:
      return "Null case";
    case undefined:
      return "Undefined case";
    default:
      return x.length;
  }
}

console.log(test(null));
console.log(test(undefined));
console.log(test("hello"));
A"Null case"\n"Undefined case"\n0
B"Undefined case"\n"Null case"\n5
CTypeError at runtime
D"Null case"\n"Undefined case"\n5
Attempts:
2 left
💡 Hint
Remember how switch compares values and how string length works.