티스토리 뷰

타입스크립트 접근제한자  : public, private, protected + 정적메소드 static


자바스크립트와 달리, 타입스크립트에서는 접근제한자를 제공합니다.  

코드 예시를 통해 접근제한자 대해서 알아보도록 하겠습니다.

/*
접근 제한자 - public, private, protected

public - 자식 클래스, 클래스 인스턴스 모두 접근 가능
protected = 자식 클래에 접근 가능, 클래스 인스턴스 접근 불가능
private - 해당 클래스 내부에서만 접근 가능

*/

// ※ static - this가 아닌, 클래스명으로 접근 !  

class Car {
    public name : string;
    private color :string;
    protected wheel : number;
    static score : number;
    constructor(name : string, age: number = 2015){
        this.name = name;
        this.color = 'red';
        this.wheel = 4;
        Car.score = 100; // static 은 클래스명으로 접근
    }
    showColor(){
        console.log(this.color)
    }
}

class Bmw extends Car {
    constructor(name : string){
        super(name);
    }
    showNameAndWheel(){
        console.log(this.name); // public 통과
        console.log(this.wheel); // protected 통과
        // console.log(this.color);  private 에러 : Property 'color' is private and only accessible within class 'Car'
    }
}

const myCar = new Bmw("bmw")
myCar.showColor() // "red"
myCar.showNameAndWheel() 
/*
"bmw"
"4"
*/
console.log(myCar.name) // "bmw" 
// console.log(myCar.wheel)  에러발생 : Property 'wheel' is protected and only accessible within class 'Car' and its subclasses.
console.log(Car.score) // 100 : static속성의 경우 해당 클래스에 직접 접근해야 한다.

 

댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함