Bird
Raised Fist0
Typescriptprogramming~5 mins

Readonly properties in interfaces in Typescript - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the readonly keyword do in a TypeScript interface?
It makes a property unchangeable after the object is created. You can read the value but cannot modify it.
Click to reveal answer
beginner
How do you declare a readonly property name of type string in an interface?
Use readonly name: string; inside the interface definition.
Click to reveal answer
beginner
Can you assign a new value to a readonly property after the object is created?
No, TypeScript will give an error if you try to change a readonly property after initialization.
Click to reveal answer
intermediate
Why use readonly properties in interfaces? Give a real-life example.
To protect important data from accidental changes. For example, a user ID should not change once set.
Click to reveal answer
beginner
Can readonly properties be set during object creation?
Yes, readonly properties can be set when the object is first created but not changed later.
Click to reveal answer
What happens if you try to change a readonly property in TypeScript?
ATypeScript shows an error.
BThe property changes without error.
CThe program crashes at runtime.
DThe property becomes undefined.
How do you mark a property as readonly in a TypeScript interface?
AUse the keyword <code>final</code> before the property name.
BUse the keyword <code>readonly</code> before the property name.
CUse the keyword <code>immutable</code> after the property name.
DUse the keyword <code>const</code> before the property name.
Can a readonly property be assigned a value when creating an object?
AYes, but only if the property is optional.
BNo, it must be set later.
CNo, it cannot be set at all.
DYes, it can be set during object creation.
Which of these is a good reason to use readonly properties?
ATo prevent accidental changes to important data.
BTo make properties private.
CTo allow properties to be changed anytime.
DTo improve runtime performance.
If an interface has a readonly property, can you omit it when creating an object?
AYes, readonly properties are always optional.
BNo, readonly means it must be included.
COnly if the property is optional.
DYes, readonly properties are ignored.
Explain what readonly properties in interfaces are and why they are useful.
Think about how you keep some information fixed, like a birthdate.
You got /4 concepts.
    Describe how to declare and use a readonly property in a TypeScript interface with a simple example.
    Show how to write the interface and create an object with that property.
    You got /3 concepts.

      Practice

      (1/5)
      1.

      What does the readonly keyword do when used in a TypeScript interface property?

      easy
      A. Prevents the property from being changed after initialization
      B. Allows the property to be changed anytime
      C. Makes the property optional
      D. Makes the property private

      Solution

      1. Step 1: Understand the purpose of readonly in interfaces

        The readonly keyword marks a property so it cannot be reassigned after the object is created.
      2. Step 2: Compare with other options

        Options A, B, and D describe different behaviors: A makes optional, B allows changes, D changes visibility, none of which match readonly.
      3. Final Answer:

        Prevents the property from being changed after initialization -> Option A
      4. Quick Check:

        readonly means no changes allowed after creation [OK]
      Hint: Readonly means no changes allowed after creation [OK]
      Common Mistakes:
      • Thinking readonly makes property optional
      • Confusing readonly with private or protected
      • Assuming readonly allows reassignment
      2.

      Which of the following is the correct syntax to declare a readonly property id of type number in a TypeScript interface?

      interface User {
      ?
      }
      easy
      A. id: readonly number;
      B. id readonly: number;
      C. readonly: id number;
      D. readonly id: number;

      Solution

      1. Step 1: Recall correct readonly syntax in interfaces

        The correct syntax places readonly before the property name, then a colon and the type.
      2. Step 2: Check each option

        readonly id: number; matches the correct syntax. Options A, B, and C have incorrect order or misplaced keywords.
      3. Final Answer:

        readonly id: number; -> Option D
      4. Quick Check:

        Readonly keyword comes before property name [OK]
      Hint: Put readonly before property name in interface [OK]
      Common Mistakes:
      • Placing readonly after property name
      • Using readonly as a type
      • Misplacing colons or semicolons
      3.

      Consider the following code:

      interface Point {
      readonly x: number;
      readonly y: number;
      }

      const p: Point = { x: 10, y: 20 };
      p.x = 30;
      console.log(p.x);

      What will happen when this code runs?

      medium
      A. It will print 30
      B. It will print 10
      C. Compile-time error due to assignment to readonly property
      D. Runtime error when assigning to readonly property

      Solution

      1. Step 1: Understand readonly behavior at compile time

        TypeScript prevents assigning a new value to a readonly property during compilation, causing an error before running.
      2. Step 2: Check runtime behavior

        Since TypeScript errors stop compilation, the code won't run, so no runtime error or output occurs.
      3. Final Answer:

        Compile-time error due to assignment to readonly property -> Option C
      4. Quick Check:

        Readonly blocks assignment at compile time [OK]
      Hint: Readonly errors happen at compile time, not runtime [OK]
      Common Mistakes:
      • Thinking readonly allows reassignment at runtime
      • Expecting runtime error instead of compile error
      • Assuming original value changes silently
      4.

      Find the error in this code snippet:

      interface Config {
      readonly url: string;
      }

      const config: Config = { url: "https://api.com" };
      config.url = "https://newapi.com";
      medium
      A. Cannot assign to 'url' because it is a readonly property
      B. Missing semicolon after interface declaration
      C. Type mismatch: string assigned to readonly property
      D. Interface properties cannot be initialized

      Solution

      1. Step 1: Identify the readonly property usage

        The property url is marked readonly, so it cannot be reassigned after initialization.
      2. Step 2: Check the assignment line

        The line config.url = "https://newapi.com"; tries to change a readonly property, causing a compile-time error.
      3. Final Answer:

        Cannot assign to 'url' because it is a readonly property -> Option A
      4. Quick Check:

        Readonly properties cannot be reassigned [OK]
      Hint: Readonly properties cause errors if reassigned [OK]
      Common Mistakes:
      • Ignoring readonly and trying to reassign
      • Confusing readonly with optional properties
      • Thinking semicolon or type is the error
      5.

      You want to create an interface Person with a readonly id and a mutable name. Which code correctly enforces this?

      ?
      hard
      A. interface Person { id: readonly number; name: string; }
      B. interface Person { readonly id: number; name: string; }
      C. interface Person { readonly id: number; readonly name: string; }
      D. interface Person { id: number; name: readonly string; }

      Solution

      1. Step 1: Define readonly and mutable properties correctly

        The readonly keyword must be before the property name to make it immutable; properties without it remain mutable.
      2. Step 2: Evaluate each option

        interface Person { readonly id: number; name: string; } correctly marks id as readonly and name as mutable. Options B, C, and D misuse readonly or make both properties readonly.
      3. Final Answer:

        interface Person { readonly id: number; name: string; } -> Option B
      4. Quick Check:

        Readonly before property name only for immutable fields [OK]
      Hint: Put readonly before only the properties you want fixed [OK]
      Common Mistakes:
      • Placing readonly after property name or type
      • Making all properties readonly by mistake
      • Confusing readonly with type annotations
      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