function example(callback: (error: Error, result: string) => void) {}
example((e, r) => {});
example(() => {});
example(() => true);
- 콜백 함수 매개변수는 알아서 타입 추론이 되므로 직접 타입을 표기하지 않아도 됨
- 문맥적 추론 (contextual typing)
- 콜백 함수의 매개변수는 호출할 때 사용하지 않아도 됨
- 그러나 콜백함수의 매개변수를 옵셔널로 만들면 안된다.
- 옵셔널일 경우 error: Error | undefined, result: string | string 이므로 예상한 것과 다르게 동작함