Archive

Typescript Day 06 - this

|

Typescript 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);


참고 자료


Do it 타입스크립트 프로그래밍

Typescript-Handbook