빈값 의미 결정
값이 생략될 수 있는지, 생략되면 어떤 기본 동작을 할지 먼저 정한다.
없음과 기본값은 같은 뜻이 아니다TypeScript에서 name?: string과 name = "guest"는 비슷해 보이지만 호출자와 함수 내부의 타입 의미가 다르다. 선택적 매개변수는 undefined 가능성을 남기고, 기본 매개변수는 undefined 입력을 내부 기본값으로 바꾼다.
값이 생략될 수 있는지, 생략되면 어떤 기본 동작을 할지 먼저 정한다.
없음과 기본값은 같은 뜻이 아니다호출자가 값을 주지 않을 수 있고 함수 내부에서 분기해야 한다면 ?를 붙인다.
내부에서는 undefined 검사가 필요하다undefined가 들어오면 항상 같은 값으로 처리하고 싶을 때 기본값을 둔다.
null은 기본값으로 대체되지 않는다필수 매개변수를 앞에 두고 선택 옵션은 뒤나 options 객체로 모은다.
중간 optional은 호출 모양을 헷갈리게 한다생략, undefined, null, 명시 값 입력을 각각 타입과 런타임 결과로 확인한다.
타입 안전성과 실행 의미를 같이 본다