Bird
Raised Fist0
Typescriptprogramming~5 mins

NonNullable type in Typescript - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the NonNullable<T> type do in TypeScript?
It creates a new type by removing null and undefined from the type T. This means the resulting type cannot be null or undefined.
Click to reveal answer
beginner
How would you use NonNullable to exclude null and undefined from a type string | null | undefined?
You write NonNullable<string | null | undefined>, which results in just string.
Click to reveal answer
beginner
True or False: NonNullable<number | null | undefined> is the same as number.
True. NonNullable removes null and undefined, leaving only number.
Click to reveal answer
intermediate
Why is NonNullable useful in TypeScript?
It helps prevent errors by ensuring variables do not hold null or undefined values, which can cause runtime problems.
Click to reveal answer
beginner
What happens if you apply NonNullable to a type that does not include null or undefined?
The type stays the same because there is nothing to remove.
Click to reveal answer
What does NonNullable<string | null | undefined> evaluate to?
Astring
Bstring | null
Cnull | undefined
Dstring | undefined
Which values are removed by NonNullable<T>?
Anull and false
Bfalse and 0
Cundefined and 0
Dnull and undefined
If a variable is typed as NonNullable<number | null>, what values can it hold?
ANumbers and null
BOnly numbers
COnly null
DNumbers and undefined
What is the main benefit of using NonNullable in your code?
ATo avoid runtime errors from null or undefined values
BTo allow more null values
CTo convert types to strings
DTo add undefined to types
What happens if you apply NonNullable to a type like boolean?
AIt becomes undefined
BIt becomes never
CThe type stays as boolean
DIt becomes null
Explain what the NonNullable type does and give an example.
Think about how it cleans a type from empty values.
You got /3 concepts.
    Why is it helpful to use NonNullable in TypeScript code?
    Consider what problems null or undefined can cause.
    You got /3 concepts.

      Practice

      (1/5)
      1.

      What does the NonNullable type do in TypeScript?

      easy
      A. Converts a type to a string
      B. Adds null and undefined to a type
      C. Removes null and undefined from a type
      D. Makes a type optional

      Solution

      1. Step 1: Understand the purpose of NonNullable

        The NonNullable type removes null and undefined from a given type, ensuring the value is always defined.
      2. Step 2: Compare options with definition

        Only Removes null and undefined from a type correctly describes this behavior; others describe different or incorrect behaviors.
      3. Final Answer:

        Removes null and undefined from a type -> Option C
      4. Quick Check:

        NonNullable removes null and undefined [OK]
      Hint: Remember: NonNullable cuts out null and undefined [OK]
      Common Mistakes:
      • Thinking it adds null or undefined
      • Confusing it with making types optional
      • Assuming it converts types to strings
      2.

      Which of the following is the correct syntax to use NonNullable on a type T?

      easy
      A. NonNullable(T)
      B. NonNullable{T}
      C. NonNullable[T]
      D. NonNullable<T>

      Solution

      1. Step 1: Recall TypeScript generic syntax

        TypeScript uses angle brackets <> to apply generic types, like NonNullable<T>.
      2. Step 2: Match options with correct syntax

        NonNullable<T> uses the correct generic syntax. Options A, C, and D use incorrect brackets or parentheses.
      3. Final Answer:

        NonNullable<T> -> Option D
      4. Quick Check:

        Generic types use <> brackets [OK]
      Hint: Use angle brackets for generics: NonNullable<T> [OK]
      Common Mistakes:
      • Using parentheses instead of angle brackets
      • Using square brackets or curly braces
      • Confusing function call syntax with type syntax
      3.

      What is the type of value after this code runs?

      type MaybeString = string | null | undefined;
      const value: NonNullable<MaybeString> = "hello";
      medium
      A. string
      B. null | undefined
      C. string | null | undefined
      D. never

      Solution

      1. Step 1: Understand the original type

        MaybeString can be string, null, or undefined.
      2. Step 2: Apply NonNullable to remove null and undefined

        Using NonNullable<MaybeString> removes null and undefined, leaving only string.
      3. Final Answer:

        string -> Option A
      4. Quick Check:

        NonNullable removes null and undefined, leaving string [OK]
      Hint: NonNullable removes null and undefined from union types [OK]
      Common Mistakes:
      • Thinking the type still includes null or undefined
      • Confusing NonNullable with Partial or Required
      • Assuming the type becomes never
      4.

      Identify the error in this code snippet:

      type User = { name: string | null };
      type CleanUser = NonNullable<User>;
      medium
      A. There is no error; code is correct
      B. The syntax for NonNullable is incorrect
      C. NonNullable removes null from properties inside objects automatically
      D. NonNullable cannot be applied to object types directly

      Solution

      1. Step 1: Understand what NonNullable does

        NonNullable removes null and undefined from a type itself, not from nested properties.
      2. Step 2: Analyze the code

        The code is syntactically correct. NonNullable<User> results in the same type as User since User is not a union including null or undefined at the top level.
      3. Final Answer:

        There is no error; code is correct -> Option A
      4. Quick Check:

        Code compiles without errors [OK]
      Hint: NonNullable can be applied to object types but does not clean nested properties [OK]
      Common Mistakes:
      • Believing NonNullable cleans nested properties automatically
      • Thinking the syntax for NonNullable is incorrect
      • Thinking NonNullable cannot be applied to object types
      5.

      Given this type, how can you create a new type NonNullUser where the email property cannot be null or undefined using NonNullable?

      type User = {
        id: number;
        email: string | null | undefined;
      };
      hard
      A. type NonNullUser = NonNullable<User>
      B. type NonNullUser = { id: number; email: NonNullable<string | null | undefined> }
      C. type NonNullUser = { id: number; email: string }
      D. type NonNullUser = { id: number; email: string | null }

      Solution

      1. Step 1: Understand the goal

        We want to keep id as is, but make email exclude null and undefined.
      2. Step 2: Apply NonNullable to the email property only

        Using NonNullable<string | null | undefined> on email removes null and undefined, leaving just string.
      3. Step 3: Check other options

        type NonNullUser = NonNullable<User> removes null/undefined from the whole User type, which does not affect nested properties. type NonNullUser = { id: number; email: string } changes the type but does not use NonNullable. type NonNullUser = { id: number; email: string | null } still allows null.
      4. Final Answer:

        type NonNullUser = { id: number; email: NonNullable<string | null | undefined> } -> Option B
      5. Quick Check:

        Apply NonNullable only to the property needing it [OK]
      Hint: Use NonNullable on specific properties, not whole object [OK]
      Common Mistakes:
      • Applying NonNullable to the whole object type
      • Not removing null and undefined from email
      • Changing type without NonNullable
      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