일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- bfs/dfs
- 그리디
- Lv2
- Next.js
- 프로그래머스
- Typescript
- node.js
- 연습문제
- 네트워크
- Python
- 이것이 코딩테스트다 with 파이썬
- 자바스크립트
- 프로그래머스 JS
- 자바
- Java
- React
- programmers
- 코딩테스트 입문
- CLASS
- Lv1
- 코딩테스트
- 알고리즘
- Baekjoon
- javascript
- 백준
- SWEA
- js
- 정렬
- CSS
- greedy
Archives
- Today
- Total
개발야옹
[ Typescript ] public, private, protected, static keyword 본문
Language/Typescript
[ Typescript ] public, private, protected, static keyword
kitez 2021. 12. 19. 17:58public
public은 default값이다. 생략이 가능하다.
class User{
public name : string = "kim";
// public => 모든 자식들이 name을 이용가능하다.
// public keyword는 생략 가능 default 값이다.
// public <-> private
constructor(a : string){
this.name = a;
}
public 함수(){
console.log(this.name);
};
}
let user1 = new User("park");
user1.name = "Lee";
public은 축약을 제공하기도 한다.
class User{
constructor( public name : string, public age : number){
}
}
let user1 = new User("Yeonji", 22);
console.log(user1); // { name : "Yeonji", age : 22 }
private
class 내부에서만 사용이 가능하며, class 외부에서는 직접적으로 접근이 불가능하다. 또한, extends로 해당 class를 상속받은 자식 class도 사용이 불가능하다.
class User{
private name : string = "kim";
// private => class 내부에서만 사용가능하게 된다. 자식들이 직접 사용 불가능.
constructor(a : string){
this.name = a;
}
public ChangeName(a : string) : void{
this.name = a;
};
}
let user1 = new User("park");
user1.name = "Lee"; // error 발생
user1.ChangeName("Lee"); // success
protected
protected는 private keyword와 같이 class{} 내부에서만 사용이 가능하다. 그러나 private과 반대로 extends로 상속받은 class 내부에서도 사용이 가능하다.
class Parent{
protected x = 10;
private y = 30;
}
class Baby extends Parent{
doIt(){
this.x = 30; // success
this.y = 20; // error
}
}
static
static ketyword를 붙은 것은 자식에게 물려주지않음. 부모 class만 사용이 가능하다.
static은 private, public, protected와 동시에 사용이 가능하다.
class Person{
static x = 10;
y = 100;
}
let person1 = new Person();
console.log(person1); // x 는 보이지 않음
728x90
'Language > Typescript' 카테고리의 다른 글
[ Typescript ] Generic (0) | 2022.01.24 |
---|---|
[ Typescript ] .ts 와 .tsx (0) | 2021.12.19 |
[ Typescript ] rest parameter type지정 (2) | 2021.12.18 |
[ Typescript ] interface (0) | 2021.12.18 |
[ Typescript ] class type 지정 (0) | 2021.12.18 |