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;
let name: string = null;
let u: undefined = null;
let v: void = undefined;
let union: string | null | undefined = 'str';
null in JavaScript
- null 이라는 값으로 할당된 것을 null 이라고 한다.
- 무언가가 있는데, 사용할 준비가 덜 된 상태
- null 이라는 타입은 null 이라는 값만 가질 수 있음
- Runtime 에서 typeof 연산자를 이용해서 알아내면, object 이다.
let n: null = null;
console.log(n);
console.log(typeof n);
undefined in JavaScript
- 값을 할당하지 않은 변수는 undefined 라는 값을 가진다.
- 무언가가 아예 준비가 안된 상태
- object 의 property 가 없을 때도 undefined 이다.
- Runtime 에서 typeof 연산자를 이용해서 알아내면, undefined 이다.
let u: undefined = undefined;
console.log(u);
console.log(typeof u);