[컴] typescript 에서 함수정의의 첫번째 parameter 로 this 를 갖는 경우

 

fake parameter / typescript this parameter / function as a parameter /

typescript 에서 함수정의의 첫번째 parameter 로 this 를 갖는 경우

결론부터 이야기 하면 이 경우 this 는 실제로 compile 후에는 js code 에서 사라진다. 이것은 type checking 을 위해 넣을 수 있게 해 놓은 것이다.

그래서 type checking 용의 this 는 첫번째 parameter 로만 가능하다.

이 구현에 대한 자세한 이야기는 ref.1 에서 찾을 수 있다.

실제로 this 를 pass 하는 경우

실제로 this 를 함수의 parameter 로 넘기려 하는 경우라면, 굳이 함수정의에 this 라는 이름을 사용할 필요가 없다.

function test(this:void, a:string){
    console.log(a);    
}

test('test');

function test2(that:any, a:string){
    console.log(that)
    console.log(a);    
}

test('test');

this:void

함수내부에서 this.something() 등을 사용하지 못하게 하는 용도로 사용할 수 있다. this가 void type 이기 때문에 아무런 member 를 갖지 않기 때문이다.

References

  1. Function this types · Issue #6018 · microsoft/TypeScript · GitHub
  2. TypeScript: Handbook - Functions
  3. jquery - Typescript “this” inside a class method - Stack Overflow
  4. TypeScript/TypeScript Language Specification (Change Markup) - ARCHIVED.pdf%20-%20ARCHIVED.pdf) –> p. 72

댓글 없음:

댓글 쓰기