null & undefined

Seulyi Yoo·2022년 7월 13일
0

TypeScript

목록 보기
11/42
post-thumbnail

Null & Undefined

  • TypeScript 에서 undefined 와 null 은 실제로 각각 undefined 및 null 이라는 타입을 가진다.
  • void 와 마찬가지로 그 자체로는 그다지 유용하지 않음
  • 둘 다 소문자만 존재함
// 이 변수들에 할당할 수 있는 것들은 거의 없음

let u: undefined = undefined;
let n: null = null;

undefined & null are subtypes of all other types

  • 설정(tsconfig.json)을 하지 않으면 그렇다.
  • number 에 null 또는 undefined 를 할당할 수 있다.
  • 하지만, Compile option 에서 ‘—strictNullChecks’ 를 사용하면, null 과 undefined 는 void 나 자기 자신들에게만 할당할 수 있음
    • 이 경우, null 과 undefined 를 할당할 수 있게 하려면, union type 을 이용해야 함
let name: string = null;
let age: number = undefined;

// strictNullChecks => true
// Type 'null' is not assignable to type 'string'.
let name: string = null; // (x)

// null => null || void, undefined => undefined || void
// Type 'null' is not assignable to type 'undefined'.
let u: undefined = null; // (x)

let v: void = undefined; // (o)

let union: string | null | undefined = 'str';

null in JavaScript

  • null 이라는 값으로 할당된 것을 null 이라고 한다.
  • 무언가가 있는데, 사용할 준비가 덜 된 상태
  • null 이라는 타입은 null 이라는 값만 가질 수 있음
  • Runtime 에서 typeof 연산자를 이용해서 알아내면, object 이다.
let n: null = null;

console.log(n); // null
console.log(typeof n); // object

undefined in JavaScript

  • 값을 할당하지 않은 변수는 undefined 라는 값을 가진다.
  • 무언가가 아예 준비가 안된 상태
  • object 의 property 가 없을 때도 undefined 이다.
  • Runtime 에서 typeof 연산자를 이용해서 알아내면, undefined 이다.
let u: undefined = undefined;

console.log(u); // undefined
console.log(typeof u); // undefined
profile
성장하는 개발자 유슬이 입니다!

0개의 댓글