Typescript 접근제한자

Gary's Note·2022년 6월 1일
0
post-thumbnail

1. ToDo

- Typescript 접근제한자 공부


2. 접근제한자 종류

(1) public

(2) protected

(3) private

(4) readonly


2. 접근제한자 특징

(1) public

  • 언제 어디서든 접근할 수 있고 생략 가능한 default 값이다.
class Class {
 	value: string
    
    construnctor(value: string) {
     	this.value = value;
    }

	public method() {
     	console.log(`Test : ${value}`); 
    }
}

const theClass = new Class(`theValue`);
theClass.method();

(2) protected

  • protected는 같은 클래스 혹은 서브클래스의 인스턴스에서만 접근이 가능하다.
class Class {
 	constructor(public value: string) {}
  
  	method1() {
     	console.log(`theValue : ${this.value} / ${this.method2()}`); 
    }
  
  	protected method2() {
     	return `Value2`; 
    }
}
const publicValue = new Class('value_1');
publicValue.method1() // output: theValue : value_1 / Value2

class SubClass extends Class {}
const subClass = new SubClass('value_2');
subClass.method1() // output: theValue : value_2 / Value2

(3) private

  • 해당 클래스의 인스턴스에만 접근 가능하다.
class Class {
 	constructor(private value: string) {}
}

const value = new Class('value_1');
value.value; // Error

class subClass extends Class {
  constructor(public valud: string) {
  	super(value);
  }
} // Error

const value = new Class('value_2');
console.log(value['value']);

(4) readonly

  • 이 외의 반드시 수정되면 안되는 변수가 있다면 readonly를 통해 선언해주어야 한다.
class Class {
 	readonly read_value: string = 'Test';

	constructor(private value: string) {}
}
const value = new Class('value');
console.log(value.read_value); // output: Test
value.read_value = 'value!!') // Error
profile
_reap what you sow_

0개의 댓글