-
[ts] 클래스 protected 프로퍼티에 관해서 알아보자.TypeScript 2022. 7. 5. 10:14
안녕하세요. gaki 입니다.
오늘은 자바스크립트 클래스의 protected 에 관해서 다뤄보겠습니다.
A 라는 클래스에 protected 로 정의된 property 와 method 가 있다고 가정합시다.
그럼 A 라는 클래스 내부에서는 당연히 protected 로 정의된 것들에 접근할 수 있습니다.
하지만 외부에서는 A 라는 클래스 안에 protected 된 것들에 접근할 수 없습니다. 여기까지는 private 과 똑같은데요.
protected 와 private 의 차이점은, private 는 private 된 속성을 오직 해당 클래스 내부에서만 접근 할 수 있다는 점이지만,
protected 는 해당 속성을 해당 클래스 내부 + 자식 클래스 에서도 접근 할 수 있다는 점이 다릅니다.
class Person { region: string; name: string; age: number; protected time:string; private _pri: number; constructor(name, age, region) { this.name = name; this.age = age; this.region = region; this.time = "10:21"; this._pri = 10; } eat(food) { console.log(`${this.name} is eating ${food}`); } get pri() { return this._pri; } set pri(num:number) { this._pri = num; } protected sleep() { console.log(this.time); console.log("sleep"); } } class Gak extends Person { name: string; age: number; region: string; h : number; constructor(name, age, region, h) { super(name, age, region); this.h = h; } sleepp() { this.sleep(); console.log(this.time); } } const gak = new Gak("gak", 15, "seoul", 133); // private property getter test console.log(gak.pri); // private property setter test gak.pri = 1111; console.log(gak.pri); // protected method test on child class gak.sleepp();
? private 속성을 getter 와 setter 를 통해 클래스 외부에서 변경 할 수 있는지 ? => 가능하다.
'TypeScript' 카테고리의 다른 글
Strict Null Checks 를 사용해야하는 이유 (0) 2022.07.18 [ts] 클래스 extends, implements 에 대해서 (0) 2022.07.04 [TypeScript] 타입스크립트 제네릭 타입 설명 및 예제 (1) 2022.05.25 [ESLint, Prettier] Next JS 에 ESLint 와 Prettier 적용하기 (0) 2022.05.19 리액트 + 타입스크립트에 라우터 적용하기 (react-router) (0) 2022.02.17