카테고리 없음
[내일배움캠프] 2023-01-18 TIL
Interrobang
2023. 1. 18. 19:00
타입스크립트 3일차
알게 된 점 (기억할만한)
this
화살표 함수에서 써야함, 일반 함수에서 쓰면 대상이 부정확해짐
interface Node {
count: number;
init(this: Node): () => {};
}
let nd: Node = {
count: 10,
init: function (this: Node) {
return () => {
return this.count;
};
},
};
let getCount = nd.init();
let count = getCount();
console.log(count); // 10
추상 클래스
특정 클래스의 상속 대상이 되는 클래스이며 좀 더 상위 레벨에서 속성, 메서드의 모양을 정의한다.
abstract class Developer {
abstract coding(): void; // 'abstract'가 붙으면 상속 받은 클래스에서 무조건 구현해야 함
drink(): void {
console.log("drink sth");
}
}
class FrontEndDeveloper extends Developer {
coding(): void {
// Developer 클래스를 상속 받은 클래스에서 무조건 정의해야 하는 메서드
console.log("develop front");
}
design(): void {
console.log("design front");
}
}
class BackEndDeveloper extends Developer {
coding(): void {
// Developer 클래스를 상속 받은 클래스에서 무조건 정의해야 하는 메서드
console.log("develop server");
}
design(): void {
console.log("design server");
}
}
// const dev = new Developer(); // error: cannot create an instance of an abstract class
const josh = new BackEndDeveloper();
const kai = new FrontEndDeveloper();
josh.coding(); // develop server
josh.drink(); // drink sth
josh.design(); // design server
console.log("");
kai.coding(); // develop front
kai.drink(); // drink sth
kai.design(); // design front
export { Developer };