최종 수정 : 2024-05-29
null 타입과 undefined 타입의 차이점
자바스크립트와 마찬가지로 null은 값이 없음을 명시할 때, undefined는 선언은 됐으나 값이 할당되지 않았을 때 사용됩니다.
TypeScript는 null과 undefined라는 타입이 존재하며, 각각 null과 undefined라는 값을 갖는다. 그 자체로는 유용하지는 않다.
null type
null은 Object 자료형을 갖고 있다.
의도적인 빈 값을 의미하며, 개발자가 의도적으로 값을 비어 두고 싶을 때 사용하는 값이다.
undefined type
변수를 선언할 때 값을 할당하지 않으면 기본적으로 할당되는 초기값이다.
function foo() {
// if Something
return { a: 1, b: 2}
// else
return { a: 1, b: undefined}
}
명시적으로 undefined를 사용하는 것보다 타입 주석(옵셔널)을 사용하는 것이 낫다.
function foo(): { a: number; b?: number } {
// if Something
return { a: 1, b: 2}
// else
return { a: 1}
}
타입스크립트에서는 null과 undefined를 타입으로 정의할 수 있다. 또한 타입스크립트 설정 파일의 strict 옵션에 따라서 사용 여부가 결정된다. strict 옵션이 꺼져 있을 때는 신경 쓰지 않아도 되는 타입이다.
자바스크립트에서는 let numA = null; 과 같이 선언해도 허용이 되지만, 타입스크립트에서는 null과 undefined라는 타입이 존재하므로 불가능하다.
하지만 tsconfig.json에서 "strictNullChecks" : false로 설정하면 가능하다.
참고 자료
https://radlohead.gitbook.io/typescript-deep-dive/recap/null-undefined
Null vs. Undefined | TypeScript Deep Dive
자바스크립트와 타입스크립트에는 두가지 타입이 있습니다. null과 undefined는 다른것들을 의미합니다. null과 undefined 둘중 하나를 확인 다음은 자바스크립트의 ==를 이용해서 null과 undefined를 비교
radlohead.gitbook.io
'프론트엔드 > TS 공부' 카테고리의 다른 글
타입스크립트의 클래스와 접근 제어자 / 인터페이스와 클래스 (0) | 2024.05.28 |
---|---|
함수 오버로딩 (0) | 2024.05.28 |
함수 타입의 호환성 (0) | 2024.05.28 |
함수 타입 정의 / 함수 타입 표현식과 호출 시그니처 (0) | 2024.05.28 |
타입 좁히기 - 타입 가드의 종류 (0) | 2024.05.28 |
댓글