타입에서의 this 가 헷갈립니다
219
작성한 질문수 3
bind<T A0, A extends any[], R>(this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R;위 타입에서 this가 두번 나오는데 서로 의미하는 바가 다른 것 같습니다.
두번째 this는 실제 함수에서 arguments로써 사용되는 this인 것 같은데
const Func(this:someThing) {}첫번째 this가 의미하는바가 무엇인지 이해가 잘 안가네요..
그리고 OmitThisParamter 타입을 분석을 해보려고 하니 아래 부분 비교를 한다는 것은 T에 this arguments가 존재한다는 뜻으로 이해를 했는데 ...args 만으로 표기를하면 this까지 포함되는게 아닌건가요?
T extends (...args: infer A) => infer R제 생각에는 다음과 같이 되어야 할 것 같은데 어떻게 this를 제외한건지 명확하게 이해가 안갑니다
T extends (this:unknown, ...args: infer A) => infer R
답변 1
1
일단 bind 함수에서 쓰이는 this가 (this: T, arg0: A0, ...args: A) => R 함수인 것입니다. 그리고 그 this 함수에 대한 this가 T인 것입니다.
const a = b.bind(1, 2, 3);
a; // (this: T, arg0: A0, ...args: A) => R
...args로 표기하면 this는 포함되지 않습니다. js 문법상 ...args가 this를 포함하지 않기 때문입니다.
데코레이터가 현재도 자주 쓰이는 문법인가요?
0
78
2
유틸리티 타입 실제로 구현은 못해도 하나씩 외우면 실무할 때 지장 없겠죠?
0
65
1
매핑 타입은 type에서밖에 안된다고 하네요?
0
65
2
자바에서의 오버로딩과 같은 개념이라고 생각해도 되나요?
0
69
2
filter 함수 반환 타입 네로잉 질문
0
74
2
map<U>(callbackfn: ....) 할때 U는 왜 여기 있는거에요??
0
47
2
ts 컴파일을 위한 type 라벨링 부분
0
46
1
concat 함수 타입 구현 중 질문 있습니다!
0
100
2
filter 메소드 질문
0
53
1
forEach 제네릭 관련 문의
0
60
1
타입 추론 시 가장 넓은 범위로 추론이 되는 건가요?
0
164
1
enum이 javascript로 트랜스파일링될때 사라진다하셨는데요
0
207
1
함수 파라미터 타입 정의 시 ...args: any[]와 ...args: any 의 차이
0
223
1
Flat type에서 ReadonlyArray 타입을 사용하는 이유?
0
157
1
bind type 질문
1
149
1
Lowercase type 관련 질문
0
152
1
key-value 타입 자동추론 질문드립니다
0
266
1
타입스크립트 교과서, p131
0
265
1
타입스크립트 교과서 p122 forEach 메서드 질문
0
231
1
타입스크립트 교과서 p116 , 코드에러남
1
269
1
타입스크립트 교과서 p112 , 코드가 안읽힙니다..
0
265
1
타입스크립트 교과서 p83
1
184
1
타입스크립트교과서 p39 쪽 코드가 이해가 안되요
1
227
1
class 에서 ts의 private vs js의 private field( # )
0
338
1





