TS에서 클래스의 속성은 기본 public 속성입니다.
private, protect와 같은 접근 제한자 (access modifier)를 통해 접근을 제한할 수 있습니다.
기본적인 선언방식
class Person0{
name?:string // 01 type
age?:number
constructor(name?:string, age?:number){ // 02 constructor
this.name=name;
this.age=age
}
}
let jack0 : Person0 = new Person0('jack',2)
console.log(jack0);
01 class의 타입을 선언해주고
02 constructor를 통해 생성해준다.
위 과정은 정석이긴 하나 코드의 양이 매우 길다.
아래의 예시는 위 코드의 단축형 두 가지를 소개한다.
// class의 interface적인 선언
class Person1{
name?: string; // 01 type 선언
age?: number;
}
// class 선언 ( constructor 선언은 자동으로 이루어짐 )
let jack:Person1 = new Person1(); // 객체 생성 타입 = class 선언 이름
jack.name = 'Jack'; jack.age=1;
// class 특정
console.log(jack);
class Person2{
constructor(public name?: string,
public age?:number){} // constructor를 통한 객체 생성
}
// constructor를 통한 class 선언
// 접근 제한자를 특정해주지 않으면 사용이 불가능하다.
let jack2: Person2 = new Person2('jack',32); // 객체 생성
console.log(jack2);