매일 배운 것을 정리하며 기록합니다. TypeScript 객체와 클래스에 대해 공부했습니다.
class 클래스명 {
[private | protected | pubilc] 속성이름[?]: 속성 타입[...]
}
class Person1 {
name: string
age?: number
}
클래스의 속성은 public, private, protect와 같은 접근 제한자를 이름 앞에 붙일 수 있음.
생략 시 public으로 간주
접근 제한자가 붙은 매겨변수의 이름을 가진 속성이 클래스에 선언된 것처럼 동작
ex)
class 클래스명 implements 인터페이스 이름 {
...
}
interface IPerson4 {
name: string
age?: number
}
class Person4 implements IPerson4 {
constructor(public name:string, public age?: number) {}
}
let jack4: IPerson4 = new Person4('Jack', 32)
console.log(jack4) // Person4 { name: 'Jack', age: 32 }
abstract class 클래스명 {
abstract 속성 이름: 속성 타입
abstract 메서드 이름() {}
}
abstract class AbstractPerson5 {
abstract name: string
constructor(publice age?: number){}
}
class 상속 클래스 extends 부모 클래스 { ... }
class Person5 extends AbstractPerson5 {
// class Person5 extends APerson5 {
constructor(public name:string, age?: number) {
super(age)
}
}
let jack5 : Person5 = new Person5('Jack',32)
console.log(jack5)
class 클래스 이름 {
static 정적 속성 이름: 속성 타입
}
class A {
static initValue = 1
}
let initVal = A.initValue // 1
interface INameable {
name: string
};
let obj: object = {name: 'Jack'}
let name1 = (<INameable>obj).name
let name2 = (obj as INameable).name
console.log(name1, name2)
Reference : 전예홍, 『Do it! 타입스크립트 프로그래밍』, 이지스퍼블리싱(2020), p66-77.