ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Typescript - protected & static
    Front-end/Typesrcipt 2023. 4. 18. 10:01
    728x90
    반응형

    Typescript protected

    Typescript protected 이란 extends된 클래스에서는 사용이 가능하지만 자식들은 사용이 불가능하다.

    class User {
        protected age = 9;	// protected 키워드로 age 변수 선언
    }
    
    class NewUser extends User {
        chageAge() {
            this.age = 29;	// extends된 클래스 내에서 age를 사용 할 수 있다.
        }
    }
    
    let person = new NewUser();
    console.log(person.age); // 자식에서 age를 불러와 사용할 수 없다.

     

     

     

    반응형

     

     

     

    Typescript static

    Typescript static 이란 부모 클래스에 변수가 직접 부여되여서 부모를 통해 사용할 수 있지만 자식은 사용할 수 없다.

    class User {
        static age: number = 27;	// static 키워드로 age 변수 선언
        weight: number  = 60;
    }
    
    let person = new User();
    console.log(person.age);	// 자식인 person 은 age를 사용할 수 없다.
    console.log(User.age);		// 부모인 User 클래스는 age를 사용할 수 있다.
    
    
    console.log(person.weight);	// static이 없는 변수는 자식이 사용할 수 있다.
    console.log(User.weight);	// static이 없는 변수는 클래스가 사용할 수 없다.

     

    static 키워드는 public, private, protected 키워드에 붙여 사용이 가능하다.

    class User {
        private static age: number = 27;	// private 및 static 키워드 속성을 둘다 가지고 있다.
        public static weight: number  = 60;	// public 및 static 키워드 속성을 둘다 가지고 있다.
    }
    
    let person = new User();

     

    static 키워드는 this를 사용할 수 가 없고 클래스명을 통해 사용할 수 있다.

    class User {
        static skill: string = 'js';
        intro: string = '나는 ' + User.skill + ' 전문가 !';	// this가 아닌 클래스를 붙여서 사용한다.
    
    }
    
    let zelord = new User();
    console.log(zelord);	// 나는 js 전문가 !
    
    User.skill = 'ts';	// skill을 ts로 변경
    
    let dongdong = new User();	// 새로운 자식을 생성하여 ts를 적용
    console.log(dongdong);	// 나는 ts 전문가 !
    728x90
    반응형

    'Front-end > Typesrcipt' 카테고리의 다른 글

    Typescript - generics  (0) 2023.04.18
    Typescript - import & export & namespace  (0) 2023.04.18
    Typescript - public & private  (0) 2023.04.18
    Typescript - never type  (0) 2023.04.18
    Typescript - Narrowing  (0) 2023.04.18
Designed by Tistory.