null : 개발자가 의도적으로 '값이 없음'을 나타낸 것
undefined : 시스템이 아직 값이 할당되지 않았다는 상태값을 넣어준 것
function foo (a: number | null) {
매개변수 a가 number일때도, null일 때도 정상 처리되는 로직
}
=> 함수 인자 a 는 null도 괜찮은데 꼭 넣어줘야돼.
// a: number | undefined는 a?:number와 같다.
function foo (a: number | undefined) {
a가 number일때도, undefined일 때도 정상 처리되는 로직
}
function foo (a?: number) {
a가 number일때도, undefined일 때도 정상 처리되는 로직
}
=> 함수 인자 a를 넣고자 하면 number만 가능해. 없으면 넣지 않아도 돼.