ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 객체지향언어같은 문법제공(public, private)
    Typescript 2022. 6. 17. 11:58

    타입스크립트를 쓰면 객체지향언어같은 문법을 제공한다.

    public private protected static같은 키워드인데, 이 키워드들은 class를 많이 만들어서 개발할 때 유용하다.

    class User {
      public name: string;
    
      constructor(){
        this.name = 'kim';
      }
    }
    
    let 유저1 = new User();
    유저1.name = 'park';  //가능

    위처럼 필드값에 public키워드를 붙일 수 있는데, 붙이면 모든 자식들이 사용가능하게 해준다.

    코드를 보니 

    class User {
      name: string = 'Kim';
    
      constructor(a){
        this.name = a;
      }
    }
    
    let 유저1 = new User('Park);

    이렇게 써도 같기 때문에 public키워드는 굳이 안붙여도 원래 숨겨 있다고 생각하면 된다.

     

    이제 private를 보면,

    class User {
      public name :string;
      private familyName :string = 'Kim';  
    
      constructor(a){
        this.name = a;
        
      }
    }
    
    let 유저1 = new User('민수');
    
    유저1.familyName = 456; //에러남

    위처럼 prievate키워드를 쓰면, 자식에서 사용할 때 에러가 나게 된다.

    즉, private가 붙으면 class 안에서만 수정, 이용가능해진다.

    그러면 안에서 수정/이용하는 예시를 보면,

    class User {
      public name :string;
      private familyName :string = 'Kim';  
    
      constructor(a){
        this.name = a + this.familyName;
      }
      
      이름변경함수() {
      	this.familyName = 'Park';
      }
    }
    
    let 유저1 = new User('민수');
    console.log(유저1);

    이렇게 입력하면 민수Kim이 출력된다.

    만약 private키워드로 선언한 걸 자식들이 바꿔야 하는 상황이 온다면, class내부에서 변경함수를 제작하고, 그 함수를

    유저1.이름변경함수() 이렇게 자식들이 사용하면 된다.

     

    마지막으로 public키워드를 쓰면, this.어쩌구가 생략가능해진다.

    class Person { 
      constructor ( public name :string ){  
      
      } 
    }
    let 사람1 = new Person('john')

    이렇게 constructor의 파라미터 자리에 public키워드를 이용해서 this를 생략할 수 있게 한다.

    'Typescript' 카테고리의 다른 글

    타입 import/export와 namespace  (0) 2022.06.17
    protected, static  (0) 2022.06.17
    함수에 사용하는 never타입  (0) 2022.06.17
    narrowing이나 더 알아보기  (0) 2022.06.17
    함수의 rest파라미터와 destructuring타입지정  (0) 2022.06.17

    댓글

Designed by Tistory.