class MyClass {
#val: number; // Private field with explicit type
constructor(initialValue: number = 1000) { // Provide a default value
this.#val = initialValue;
}
// Getter to expose the value as read-only
get value(): number {
return this.#val;
}
}
const obj1 = new MyClass(); // Uses default value (1000)
console.log(obj1.value);
// obj1.val = 23; // Error: Cannot set property 'val'
const obj2 = new MyClass(300); // Uses provided value (300)
console.log(obj2.value);
/*
run:
1000
300
*/