반응형
에러
useEffect(() => {
const container = document.querySelector('.container');
container.addEventListener('scroll', listener);
return () => {
container.removeEventListener('scroll', listener);
};
});
대충 이런 상황에서 container 변수에 빨간 줄이 뜨면서 object is possibly 'null'이라는 에러가 출력됐다
원인
개발하는 입장에서 저 container에 dom이 들어간다고 확신하지만, 타입 스크립트 입장에서는 아닌가 보다,,ㅎ
null값이 들어갈 수도 있다고 판단이 되어 뜨는 오류!
해결
옵셔널 체인징을 이용하자!
useEffect(() => {
const container = document.querySelector('.container');
container?.addEventListener('scroll', listener);
return () => {
container?.removeEventListener('scroll', listener);
};
});
변수 container에 값이 있으면 addEventListener를 실행하고 아니면 return 시켜버리는 것과 같다
그 외에 if 문으로 null 값을 return 시켜주는 처리법도 있고 타입을 직접 지정해주는 방법도 있다!
난 옵셔널 체이닝이 가장 간단해서,,ㅎ
반응형
'📍 Front-End > 🜸 TypeScript' 카테고리의 다른 글
타입스크립트 유틸리티 타입 (Utility Types) (0) | 2024.06.23 |
---|---|
자바스크립트(타입스크립트)에서 숫자 세자리(천단위)마다 콤마 찍기 (0) | 2023.01.12 |
[Typescript] 타입스크립트에서 json 파일 import 안될 때 (0) | 2022.06.12 |
[React/Typescript] styled-components로 global style 적용하기 (0) | 2022.06.10 |
React + Typescript + ESLint + prettier 환경 구성하기 (2022. 5. 29 기준) (1) | 2022.05.29 |
댓글