본문 바로가기

TypeScript

클래스 - 심화 - 접근자

class Shape {
      private _vertices: number = 3;

      getVertices() {
        console.log('Vertices getter called.');
        return this._vertices;
      }

      setVertices(value) {
        console.log('Vertices setter called.');
        this._vertices = value;
      }
    }

읽기 접근을 위한 getter

    class Shape {
      constructor (public vertices: number) { }
      get vertices(): number {
        console.log('Vertices getter called.');
        return 3;
      }
    }
    const triangle: Shape = new Shape(3);
    const vertices = triangle.vertices; // Vertices getter called.
    console.log(vertices); // 3

쓰기 접근을 위한 setter

    class Shape {
      private _vertices: number = 3;
      get vertices() {
        console.log('Vertices getter called.');
        return this._vertices;
      }
      set vertices(value) {
        console.log('Vertices setter called.');
        this._vertices = value;
      }
    }
    const square = new Shape();
    square.vertices = 4; // Vertices setter called.
    const vertices = square.vertices; // Vertices getter called.
    console.log(vertices); // 4

만약 게터만 존재하고 세터가 존재하지 않는 멤버의 경우, 읽기만 가능할 뿐 쓸 수단이 없다. 따라서 타입스크립트는 해당 멤버를 readonly 로 인식한다.

'TypeScript' 카테고리의 다른 글

인터페이스와 클래스의 관계  (0) 2019.10.30
추상 클래스  (0) 2019.10.30
클래스 - 심화 - 접근 제어자  (1) 2019.10.30
클래스 - 심화 - 스태틱 멤버  (0) 2019.10.30
클래스 - 확장  (0) 2019.10.30