[TypeScript] Protected & Static

2022. 7. 7. 15:27·TypeScript/기초
반응형

Protected 

private와 비슷한 키워드로, private는 자신의 class {} 안에서만 사용과 수정이 가능했다면, 

protected는 자신의 class {} 와 extends로 복사한 클래스까지 사용과 수정이 가능하다. 

class User {
    protected x = 10;
}

class NewUser extends User {
    addX(){
    	this.x = 20;
    }
}

User를 extends 하는 NewUser에서 x는 가져다가 사용할 때, 

x가 private 속성일 경우 에러가 나지만, 

x가 protected 속성일 경우엔 에러가 나지 않는다. 

 

class를 여러개 만들 때 class 끼리 공유할 수 있는 속성을 만들 때는 protected, 

자신 class안에서만 사용할 수 있는 속성을 만들고 싶다면 private을 사용하면 된다. 

 

Static

class {} 안에 넣는 변수와 함수는 전부 class로부터 생성되는 object에게 부여된다. 

하지만 class에게 직접 변수나 함수를 부여하고 싶다면 static 키워드를 붙여주면 된다. 

 

class User {
    static x = 10;
    y = 20;
}

let john = new User();
john.x  // 불가능
User.x  // 가능

 

자바스크립트에서 Math라는 class를 자주 사용했을 것이다. 

이것도 class인데, new Math를 통해서 사용하는 것이 아닌 static을 통해서 사용하는 방법이다. 

반응형
저작자표시 비영리 변경금지 (새창열림)

'TypeScript > 기초' 카테고리의 다른 글

[TypeScript] React에서 사용하기_1편  (1) 2022.07.09
[TypeScript] Generic  (1) 2022.07.08
[TypeScript] Public & Private  (1) 2022.07.07
[TypeScript] never 타입  (1) 2022.07.06
[TypeScript] Narrowing 할 수 있는 방법  (1) 2022.06.23
'TypeScript/기초' 카테고리의 다른 글
  • [TypeScript] React에서 사용하기_1편
  • [TypeScript] Generic
  • [TypeScript] Public & Private
  • [TypeScript] never 타입
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    덤프
    바질 키우기
    리액트
    javascript
    webpack
    ReactNative
    알고리즘
    네이버 부스트캠프
    ChatGPT
    CSS
    typescript
    리얼클래스
    영어독학
    식물
    네트워크
    Babel
    자바스크립트
    CCNA
    redux
    다이소
    react
    리얼학습일기
    Docker
    영어회화
    프로그래머스
    타입스크립트
    타일러영어
    Node.js
    next.js
    바질
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
[TypeScript] Protected & Static
상단으로

티스토리툴바