[typescript] 다중 타입을 활용하여 콜백 함수를 정의하는 방법을 알려주세요.

보통 다중 타입을 활용하여 콜백 함수를 정의할 때는 TypeScript의 유니온 타입(Union Type)을 사용합니다. 이를 통해 콜백 함수가 받을 수 있는 여러 타입을 정의하고, 해당 타입에 맞는 동작을 구현할 수 있습니다.

다음은 TypeScript에서 다중 타입을 활용하여 콜백 함수를 정의하는 간단한 예시입니다.

type SuccessCallback = (data: string) => void;
type ErrorCallback = (error: Error) => void;

function fetchData(onSuccess: SuccessCallback, onError: ErrorCallback) {
  // 비동기 작업 수행
  if (/* 성공 시 조건 */) {
    onSuccess('데이터');
  } else {
    onError(new Error('데이터를 불러오지 못했습니다.'));
  }
}

// 사용 예시
fetchData(
  (data) => {
    console.log('데이터를 성공적으로 불러왔습니다:', data);
  },
  (error) => {
    console.error('데이터를 불러오는 중 에러가 발생했습니다:', error.message);
  }
);

위 예시에서는 SuccessCallbackErrorCallback이라는 두 가지 다중 타입을 정의하여 fetchData 함수에서 사용하고 있습니다. fetchData 함수는 성공 시 데이터를 전달하는 onSuccess 콜백과, 에러 시 에러를 전달하는 onError 콜백을 받아와서 사용합니다.

이를 통해 TypeScript에서 다중 타입을 활용하여 콜백 함수를 정의하는 방법을 간단히 알아보았습니다. 더 많은 기능과 사용 방법에 대해서는 TypeScript 공식 문서를 참고하시기 바랍니다.