Typescript Day 06 - this
02 Jun 2021 | TypescriptTypescript Day 06 - this
this
인스턴스는 기본적으로 this 키워드를 사용할 수 있다. (arrow function 제외)
타입스크립트는 this의 잘못된 사용을 감지할 수 있다.
타입스크립트에서 this가 가리키는 것을 명시하려면 아래와 같이 사용한다
function 함수명(this: 타입) {
//...
}
interface IPerson {
name: string;
init(this: IPerson): () => {};
}
let jack: IPerson = {
name: 'jack',
init: function(this: IPerson) {
return () => {
return this.name;
}
}
}
let getName = jack.init();
console.log(getName()); // jack
콜백에서의 this
콜백으로 함수가 전달될 때 this를 구분해주어야 할 때가 있다.
interface Element {
addClickListener(onclick: (this: void, e: Event) => void): void;
}
class Handler {
info: string;
onClick(this: void, e: Event) {
console.log('clicked');
}
}
let handler = new Handler();
element.addClickListener(handler.onClick);