I am learning TypeScript and I am a bit confused by the way it handles const variables. Let's say I define an interface for a number as:
interface MyNumber {
value: number;
}
and created a const MyNumber
const myNumber: MyNumber = { value: 42 };
I read in the TypeScript documentation that const did not prevent me from modifying the internal state of the object (provided the property is not readonly). However, I did not expect this to compile:
function setToFive(num: MyNumber) {
num = {
value: 5
}
}
console.log(myNumber);
setToFive(myNumber);
console.log(myNumber);
This code prints 42 twice. It looks like the function performs a copy of my const variable and uses that copy within its scope. I find this a bit surprising. Is there a way to trigger a compile-time error instead?