-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
cache 강의 질문
24.02.04 18:58 작성 조회수 81
1
둘의 차이가 궁금합니다.
clone: <U>(transform: (elem: T) => U) => Cache< ReturnType<typeof transform> >;
clone: (transform: <U>(elem: T) => U) => Cache< ReturnType<typeof transform> >;
왜 명시적으로 제네릭을 지정하면 오류가 날까요
const stringCache = numberCache.clone(<string>(elem) => {
return String(elem);
});
답변을 작성해보세요.
0
애프터캠프
지식공유자2024.02.05
안녕하세요
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번째 방법도 가능한 것처럼 보이지만 타입스크립트에서 유효하지 않은 문법입니다. 왜? 라고 물어보시면 저도 할 말이 없지만 아마 언어를 설계하신 분이 첫번째 방법으로도 가능하기 때문에 두번째 방법이 가능하도록 따로 구현하지 않은 것 같습니다.
답변 1