tsx파일의 화살표 함수에서 제네릭 사용시 에러: ... 'T' has no corresponding closing tag.

낭만개발자·2022년 6월 21일
6

TypeScript

목록 보기
4/4

이슈

tsx 파일 내 arrow fucntion 사용시, ts 문법의 generic 설정시 아래 에러가 발생한다.

이유

다이아몬드 연산자가 JSX파일이라는 착각을 컴파일러 한테 주기 땜에. jsx로 인식해버려서다.

해결책


<T,>(param : T) => x 처럼 T 옆에 trailiing comma를 사용해서, < 이 심볼이 jsx가 아니라는 확신을 컴파일러에게 주면 해결된다.
ref: https://stackoverflow.com/a/45576880/12959959

const foo = <T extends {}>(x: T):T => x 를 사용해서 jsx 문법이 아닌 {}를 extends 했다고 확신을 주면 또한 해결된다.

ref: https://velog.io/@edie_ko/TypeScript-Generic-%EC%A0%9C%EB%84%A4%EB%A6%AD-feat.-TypeScript-%EB%91%90-%EB%8B%AC%EC%B0%A8-%ED%9B%84%EA%B8%B0

profile
낭만닥터와 슬의를 보고 저런 개발자가 되어야 겠다고 꿈꿔봅니다.

0개의 댓글