Isn't the idea to get a compile time error, rather than a runtime exception?
Property 'thing' does not exist on type 'Readonly<{ immutable: true; }>'.ts(2339)
So it would be a simple way to achieve it.
I'm genuinely curious, was this AI generated, or just a lack of understanding?
You can also use "as const" to get the same behavior without any runtime calls:
const exploring = { immutable: true } as const
exploring.immutable = false
^ Cannot assign to 'immutable' because it is a read-only property.(2540)
But yes, OP wasn't referring to the article, they were just pointing out the narrower fact that Typescript does in fact have compile-time errors for mutating Object.freeze's return values.