[Do it! 타입스크립트 프로그래밍#4]
클래스 선언문
타입스크립트는 class,private,public,protected,implements,extend
와 같은 키워드를 제공합니다.
문법적인 차이만 약간 있을 뿐 사실상 그 의미는 다른 언어와 같습니다.
class Person1 {
name: string
age?: number
}
let jack1 : Person1 = new Person1()
jack1.name = 'Jack'; jack1.age =32
console.log(jack1) // Person1{ name: 'Jack', age:32}
접근 제한자
클래스의 속성은 public, private, protect와 접근 제한자(access modifier)를 이름 앞에 붙일 수 있습니다. 만약 생략하면 모두 public으로 간주합니다.
생성자
타입스크립트 클래스는 constructor라는 이름의 특별한 메서드를 포함하는데, 이를 생성자(constructor)라고 합니다.
class Person2 {
constructor(public name: string, public age?: number) {}
}
let jack2 : Person2 = new Person2('jack',32)
console.log(jack2) // Person2 { name: 'Jack' , age: 32}
인터페이스 구현
타입스크립트 클래스는 인터페이스를 구현할 수 있습니다.
인터페이스는 이러이러한 속성이 있어야 한다는 규약에 불과할 뿐
물리적으로 해당 속성을 만들지 않는다는 점입니다.
따라서 클래스 몸통에는 반드시 인터페이스가 정의하고 있는 속성을 멤버 속성으로 포함해야 합니다.
ex)
interface IPerson4 {
name : string
age?: number
}
class Person4 implements IPerson4 {
name : string
age : number
}
인터페이스나 클래스를 사용해 관련된 정보를 묶어 새로운 타입으로 표현 => 구조화
구조화된 데이터를 분해하는 것을 비구조화(destructuring)
let name = jack.name , age =jack.age
타입 변환
타입이 있는 언어들은 특정 타입의 변숫값을 다른 타입의 값으로 변환할 수 있는 기능을 제공합니다
이를 타입 변환(type conversion)이라고 합니다.