상추의 IT저장소

TS)Class 본문

Javascript/TypeScript

TS)Class

구너상추 2023. 1. 17. 22:12

Class

객체 지향 프로그래밍(OOP)에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀(template)이다. 객체를 정의하기 위한 메소드와 변수로 구성된다. by 위키백과

- ES6 에는 기존의 객체 지향 언어와 비슷하게 클래스를 선언할 수 있는 class 키워드가 추가 되었다.

- typescript의 클래스는 ES6 클래스의 상위집합으로, ES6 클래스를 포함할 뿐 아니라 추가기능을 제공한다.

 

생성자

- constructor 키워드를 사용해 클래스 생성자를 정의 할 수 있다.

- 클래스 생성자를 통해 클래스 인스턴스가 생성될 때, 실행될 로직을 정의 할 수 있다.

 

속성

- 객체 속성과 유사하게 클래스 인스턴스도 속성을 가질 수 있다.

- 클래스 내에서는 속성엔 this 키워드를 이용하여 접근이 가능하다.

- 모든 클래스 속성은 이름 : 타입 형식으로 속성선언을 통해 타입을 표기해주어야한다.

- 클래스 속성에도 기본값을 제공 할 수 있다.

 

읽기 전용 속성

- readonly 키워드를 사용해 읽기 전용 속성을 정의 할 수 있다.

- 속성 선언 또는 생성자 외의 장소에서는 읽기 전용 속성에 할당 할 수 없다.

 

메소드

- 객체의 단축 메소드명과 유사한 문법을 사용해 인스턴스의 메소드를 정의 할 수 있다.

- 메소드 내에서는 this 키워드를 사용해 해당 메소드가 호출되는 인스턴스를 참조 할 수 있다.

- 함수를 속성으로 정의한 경우엔 별도의 속성 선언을 생략 할 수 있다.

 

접근제어자

접근 제어자를 활용하여 인스턴스의 멤버에 대한 접근 권한을 지정할 수 있다.

 

public 

- public은 접근 제한이 전혀 존재하지 않으며, 프로그램의 어느 곳에서나 접근 가능하다. 접근 제어자가 명시되지 않은 멤버는 모두 암시적으로 public 접근 권한을 갖는다.

 

private

- 비공개로 설정하려는 속성은  private로 설정하여 해당 클래스 내부의 코드만이 접근 가능하다.

- 만약 클래스 바깥에서 private 멤버에 접근하려 할 시 에러가 발생한다.

- private 멤버의 접근 제한은 서브클래스에도 적용된다.

 

protected

- protected 권한의 멤버는 private과 비슷하게 동작하지만, 서브클래스에서의 접근 또한 허용된다.

 

 

 

예시) UserInfo 클래스를 형성하고 constructor 로 생성자 정의한 코드

class UserInfo {
    public name :string; 
    public age : number; 
    private _city : string;

    constructor(name : string, age:number, city:string) {
        this.name = name;
        this.age = age;
        this._city = city;
    }

}

 

 

 

 

참조 : https://ahnheejong.gitbook.io/ts-for-jsdev/

 

자바스크립트 개발자를 위한 타입스크립트 - ts-for-jsdev

『자바스크립트 개발자를 위한 타입스크립트』는 타입스크립트 입문서입니다. 하지만 프로그래밍을 처음 시작하는 독자가 읽을 것을 염두에 두고 쓰진 않았습니다. 저와 같이 자바스크립트를

ahnheejong.gitbook.io

 

'Javascript > TypeScript' 카테고리의 다른 글

TS) 추상 클래스 (Abstract class)  (0) 2023.01.27
TS) 타입 단언(Type Asssertion)  (0) 2023.01.27
TS) generic  (0) 2023.01.23
TS) 타입 지정  (0) 2023.01.23
TS) TS설치 & tsconfig.json 만들기  (0) 2023.01.17