타입스크립트 클래스 문법은 js와 크게 다르지는 않다.
//javascript class ES2015 (ES6)
class Person {
constructor(name, age) {
console.log('생성 되었습니다.')
this.name = name;
this.age = age;
}
...
// Typescript class
class Person {
name: string;
age: number;
constructor( name: string, age: number ) {
this.name = name;
this.age = age;
}
}
클래스 문법은 js와 동일하나 생성자 함수 위에 사용할 변수 타입을 설정해준다.
클래스의 속성에 readonly 키워드를 사용하면 아래와 같이 접근만 가능하다.
class Developer {
readonly name: string;
constructor(theName: string) {
this.name = theName;
}
}
let john = new Developer("John");
john.name = "John"; // error! name is readonly.
또는
class Developer {
readonly name: string;
constructor(readonly name: string) {
}
}
이렇게 생성자 함수 내부에 작성하여 코드를 줄일 수 있다.
class Person {
private name: string;
public age: number;
constructor( name: string, age: number ) {
this.name = name;
this.age = age;
}
}
변수의 유효범위를 설정 가능하다.
private는 선언한 변수를 class 내부에서만 사용할때 사용한다.
기본적으로는 public을 선언해준다고 한다.