Instruction: Provide a detailed explanation and example code to illustrate your answer.
Context: This question assesses the candidate's understanding of immutability in TypeScript's classes and interfaces and their ability to apply the 'readonly' modifier to ensure properties are not changed after their initial assignment.
easy
hard
hard
hard