Params

호출 인자는 필수, 선택, 기본값, 나머지로 처리 규칙이 갈린다

매개변수 문법은 호출자가 무엇을 생략할 수 있고 함수가 어떤 값을 대신 넣는지 드러낸다.

required
name: T
반드시 전달해야 함
optional
name?: T
없을 수 있어 undefined 처리 필요
default
name = value
생략 또는 undefined일 때 기본값 사용
rest
...items: T[]
개수 가변 인자를 배열로 수집
상황판단
필수 값없으면 함수 의미가 깨지는 식별자
부가 옵션없을 수 있음을 타입에 표시
여러 옵션위치 인자보다 객체 옵션으로 이동

핵심 선택 인자가 늘어나면 호출부가 흐려지므로 객체 옵션을 검토해야 한다.