반응형
null & undefined
In TypeScript, both undefined and null actually have their types named undefined and null respectively.
TypeScript에서, undefined와 null은 실제로 각각 undefined와 null이라는 타입을 가집니다.
Much like void, they're not extremely useful on their own.
void와 마찬가지로, 그 자체로는 설정을 하지 않으면 그다지 유용하지 않습니다.(둘 다 소문자만 존재합니다.)
// 아래의 변수들에 할당할 수 있는 것들은 거의 없습니다.
let u: undefined = undefined;
let n: null = null;
undefined & null are subtypes of all other types.
설정을 하지 않으면 그다지 유용하지 않다는 뜻은 number에 null 또는 undefined를 할당할 수 있다는 의미입니다.
하지만 컴파일 옵션에서 `--strictNullChecks`를 사용하면, null과 undefined는 void나 자기 자신들에게만 할당할 수 있습니다. (이 경우, null과 undefined를 할당할 수 있게 하려면, union type을 이용해야 합니다.)
let name: string = null;
let age: number = undefined;
// strictNullChecks => ture
// Type 'null' is not assignable to type 'string'.
let name: string = null; // (안 됨.)
// 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이라는 타입은 null이라는 값만 가질 수 있습니다.
런타임에서 typeof 연산자를 이용해서 알아내면, object입니다.
let n: null = null;
console.log(n); // null
console.log(typeof n); // object
undefined in JavaScript
undefined는 아직 정의하지 않았음을 의미하며, 값을 할당하지 않은 변수가 undefined라는 값을 가집니다.
object의 property가 없을 때도 undefined입니다.
런타임에서 typeof 연산자를 이용해서 알아내면, undefined입니다.
let u: undefined = undefined;
console.log(u); // undefined
console.log(typeof u); // undefined
반응형
'👶 TypeScript' 카테고리의 다른 글
Array (0) | 2023.01.08 |
---|---|
객체(Object) (0) | 2023.01.07 |
symbol (0) | 2023.01.07 |
string (0) | 2023.01.07 |
number (0) | 2023.01.07 |