강의

멘토링

로드맵

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

yje10007님의 프로필 이미지
yje10007

작성한 질문수

실전 연습으로 익히는 고급 타입스크립트 기술

Cache

cache 강의 질문

해결된 질문

작성

·

203

1

  1. 둘의 차이가 궁금합니다.

clone: <U>(transform: (elem: T) => U) => Cache< ReturnType<typeof transform> >;

clone: (transform: <U>(elem: T) => U) => Cache< ReturnType<typeof transform> >;
  1. 왜 명시적으로 제네릭을 지정하면 오류가 날까요

const stringCache = numberCache.clone(<string>(elem) => {
    return String(elem);
  });

답변 1

0

애프터캠프님의 프로필 이미지
애프터캠프
지식공유자

안녕하세요

1번하고 2번 질문이 연관된 것 같은데 합쳐서 답변드리겠습니다.

clone: <U>(transform: (elem: T) => U) => Cache< ReturnType<typeof transform> >;
clone: (transform: <U>(elem: T) => U) => Cache< ReturnType<typeof transform> >;

위의 clone과 아래의 clone의 차이는 제네릭을 위한 타입 변수를 선언을 clone함수에 할 것이냐 아니면 transform이라는 함수 인자에 해줄 것이냐의 차이인데요.

논리적으로는 2번째 방법도 가능한 것처럼 보이지만 타입스크립트에서 유효하지 않은 문법입니다. 왜? 라고 물어보시면 저도 할 말이 없지만 아마 언어를 설계하신 분이 첫번째 방법으로도 가능하기 때문에 두번째 방법이 가능하도록 따로 구현하지 않은 것 같습니다.

 

yje10007님의 프로필 이미지
yje10007

작성한 질문수

질문하기