작성
·
198
0
안녕하세요! 완전 복잡한 타입 분석하기(bind 편) 5:25을 보다가 궁금한 점이 생겨서 질문드립니다. 아래는 OmitThisParameter
인데요
type OmitThisParameter<T> = unknown extends ThisParameterType<T> ? T : T extends (...args: infer A) => infer R ? (...args: A) => R : T
두번째 조건부 타입에서 ...args
에 왜 this
는 포함되지 않는건가요?
T extends (...args: infer A) => infer R ? (...args: A) => R : T
제 개인적인 생각은 'T
가 첫번째 조건부 타입에서 this
매개변수가 있다는 것이 확인 되었으니까, T
는 (this, ...args) => any
이렇게 생겼을 것이다 라고 컴파일러가 추론(?)해서 바로 ...args
만 추출하는건가??' 인데
제 생각이 맞는 건지 아니면 다른 이유인지 궁금해서 질문 드립니다!
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다.
강의 수강생님이 타입스크립트에서 this
의 사용과 OmitThisParameter
유형에 대해 궁금해 하신 내용과 유사한 강의 내용에 대한 질문에 강사님이 직접 답변하신 내용이 있습니다. 이에 대한 답변을 참고하시면 도움이 될 것 같습니다.
질문 제목: “타입에서의 this 가 헷갈립니다”
- 링크: 타입에서의 this 가 헷갈립니다
- 강사님 답변 요약: bind 함수에서 쓰이는 this
는 (this: T, arg0: A0, …args: A) => R 함수이며 그 함수에 대한 this가 T입니다. ...args
로 표기하면 this는 포함되지 않습니다.
질문 제목: “bind에서의 this, thisArg, …args 타입분석 3개인 이유 ..”
- 링크: bind에서의 this, thisArg, …args 타입분석 3개인 이유 ..
- 강사님 답변 요약: 타입스크립트에서 함수에서 this
를 직접 타이핑할 수 있습니다. 이 내용은 bind 함수의 thisArg와 ...args
에 대한 타입 정의와 관련이 있습니다.
위 링크들을 참고하시면 좀 더 구체적인 설명을 얻으실 수 있을 것입니다.