การตั้งค่าของตัวแปรและเมธอดเป็น public จะมีผลให้สามารถเรียกใช้จากข้างนอกได้
class Dog {
public name: string // ใช้ได้ทั้งใน Class และเรียกจากนอก Class
public bark() {
console.log("Woof!")
}
}
const d = new Dog()
d.name = "Doge"
d.bark() // Woof!
ปกติถ้าไม่กำหนด Access ใดๆ เลย จะถือว่าเป็น public โดยอัตโนมัติ เราจึงไม่เห็นคนใช้ public กันเท่าไร
class Dog {
protected color: string = "white" // color จะใช้ได้แค่ภายใน Class และ Subclass
printColor() {
console.log(`This dog is ${this.color}`)
}
}
class MyDog extends Dog {
printColor() {
console.log(`My dog is ${this.color}, and he's cute!`)
}
}
const d = new Dog()
d.color // ❌ เรียกใช้ไม่ได้ เพราะเป็น protected
d.printColor() // This dog is white
const e = new MyDog()
e.printColor() // My dog is white, and he's cute!