작업 상태
- react 코드를 tsx코드로 변환하던 중에 발생했습니다.
에러 메시지
- Property 'focus' does not exist on type 'never'.ts(2339)
const liRef = useRef(null);
...
useEffect(() => {
if (qna && qna.id === question.id && liRef.current) {
liRef.current.focus(); //문제 발생 메시지
}
}, [qna, question.id]);
return (
<li ref={liRef} tabIndex={0}
원인
- 타입스크립트가 해당 요소에 대한 속성을 인식하지 못하는 것을 나타냅니다. 해당 요소의 타입을 명시적으로 지정하거나 해당 요소에 대한 타입 정의를 확실히 하는 것이 필요합니다.
- useRef를 사용할 때 타입을 명시하지 않으면 타입추론이 이루어지지 않아서 never 타입으로 간주될 수 있습니다.
처리
const liRef = useRef<HTMLLIElement>(null);
참고
문서 객체 모델(DOM) - Web API | MDN (mozilla.org)
never 타입은 절대 발생할 수 없는 타입을 나타냅니다. 예를 들어, never는 함수 표현식이나 화살표 함수 표현식에서 항상 오류를 발생시키거나 절대 반환하지 않는 반환 타입으로 쓰입니다. 변수 또한 타입 가드에 의해 아무 타입도 얻지 못하게 좁혀지면 never 타입을 얻게 될 수 있습니다
소개 · GitBook (typescript-kr.github.io)
'간단 에러 처리기' 카테고리의 다른 글
AxiosError: unable to verify the first certificate (0) | 2023.04.26 |
---|---|
Error: listen EACCES: permission denied 0.0.0.0:443 (0) | 2023.04.26 |
node, restarting due to changes메시지와 함께 계속 재시작하는 문제 (0) | 2023.04.21 |
Uncaught ReferenceError: process is not defined (0) | 2023.04.20 |
Project 'back' is missing required source folder: 'src/main/generated/querydsl' (0) | 2023.04.19 |