TypeScript: 접근 제어자

이토니·2024년 1월 26일
0

JavaScript

목록 보기
10/33
post-thumbnail

접근 제어자

public: default값이며, 어디서든 접근 가능
protected: 클래스 내 & 상속받은 자식 클래스 내에서 접근 가능
private: only 클래스 내에서만 접근 가능

class Post {
    public id: number = 0; // 적어주지 않으면 defualt인 public
    protected title: string = "";

    constructor(id: number, title: string){
        this.id = id;
        this.title = title; 
        
    }

    getPost(){
        return `postId ${this.id}, postTitle: ${this.title}`;
    }
}

class PostB extends Post {
    getPost(){
        return this.title; // protected 는 하위 클래스에서 사용 가능 
    }
}

const post: Post = new Post(1, "title 1");
console.log(post.id); 
console.log(post.title); //error

좀 더 간략하게 작성해보기

class Post {

    constructor(
        public id: number = 0, // 여기서는 public 생략 불가 
        protected title: string = ""
        ){}

    getPost(){
        return `postId ${this.id}, postTitle: ${this.title}`;
    }
}

class PostB extends Post {
    getPost(){
        return this.title; // protected 는 하위 클래스에서 사용 가능 
    }
}

const post: Post = new Post(1, "title 1");
console.log(post.id); 
console.log(post.title); // error

https://www.inflearn.com/course/%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B0-%EB%B0%B0%EC%9A%B0%EB%8A%94-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8/dashboard

profile
cool & soft codes

0개의 댓글