반응형
Non-null assertion operator(null 아님 보증 연산자) !
TypeScript에서 !
연산자는 변수 오른쪽에 붙어 Non-null 단언 연산자로 사용된다.
변수의 타입을 null
이나 undefined
가 아님을 명시적으로 지정하여 컴파일러에게 알려주는 역할을 한다.
예시로,
카카오맵 컴포넌트가 글 작성 페이지일 때는 setCustomValue
라는 함수가 있고,
상세페이지(detailPage
)일때는 없다.
"Cannot invode an object which is possibly 'undefined'"
이 컴포넌트에서 setCustomValue
가 넘어 올지 않을지 모르는데, undefined일수도 있는데!setCustomValue!('latitude', mouseEvent.latLng.getLat());
라고 작성하면 확실히 있음ㅇㅇ 하는것
근데, 작성하기 전에 type guard를 사용하여
setCustomValue가 null이거나 undefined일 경우를 대비하는것이 좋다.
const handleClick = (mouseEvent: kakao.maps.event.MouseEvent) => {
if (detailPage) return;
setCustomValue!('latitude', mouseEvent.latLng.getLat());
setCustomValue!("longitude", mouseEvent.latLng.getLng());
};
detailPage
가 true
일때는 setCustomValue
가 안넘어오기 때문에 return;
을 시켜주고setCustomValue
에 !
을 붙여주었다.
주의 사항
단언 연산자는 주의해서 사용해야 한다.
- 값이 실제로
null
또는undefined
인지 확인하지 않고 단언 연산자를 사용하면 예상치 못한 결과가 발생할 수 있다. - 코드의 가독성을 저하시킬 수 있다.
따라서 단언 연산자는 필요한 경우에만 사용하는 것이 좋다.
반응형
'Frontend > Javascript・Typescript' 카테고리의 다른 글
디바운싱과 쓰로틀링(Debouncing&Throttling) (0) | 2024.08.08 |
---|---|
Node.js란(등장배경/내부구조/작동방식) (5) | 2024.07.23 |
[Typescript] Typescript Essentials3 (1) | 2023.11.01 |
[Typescript] Typescript Essentials2 (0) | 2023.11.01 |
[Typescript] Typescript Essentials1 (1) | 2023.11.01 |