인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

dawn님의 프로필 이미지
dawn

작성한 질문수

[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편

완전 복잡한 타입 분석하기(bind 편)

OmitThisParameter 두번째 조건부 질문입니다!

작성

·

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

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

복잡하게 생각하시는 것 같은데요. OmitThisParameter는 this가 있는 경우 this를 제거하는 타입입니다. 그래서 this가 빠진겁니다.

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에 대한 타입 정의와 관련이 있습니다.

위 링크들을 참고하시면 좀 더 구체적인 설명을 얻으실 수 있을 것입니다.

dawn님의 프로필 이미지
dawn

작성한 질문수

질문하기