[typescript] 타입스크립트에서 에러 핸들링을 위한 `try/catch` 문을 프로미스 체이닝에 어떻게 적용할 수 있나요?
async function fetchData(): Promise<any> {
  const url = 'https://api.example.com/data';
  try {
    const response = await fetch(url);
    const data = await response.json();
    return data;
  } catch (error) {
    console.error('에러 발생:', error);
    throw error; // 에러를 다시 던져서 상위 호출자에게 전파
  }
}

// fetchData 함수를 사용하는 예시
fetchData()
  .then((data) => {
    // 성공적으로 데이터를 받아왔을 때의 처리
  })
  .catch((error) => {
    // fetchData 함수 내에서 발생한 에러를 처리
  });

위의 예시 코드에서 fetchData 함수는 데이터를 가져오는 비동기 작업을 수행하고, try/catch 문을 사용하여 에러를 캐치하고 처리합니다. 그리고 fetchData 함수를 호출할 때 then()catch()를 통해 성공 및 실패 시의 처리를 할 수 있습니다.

이와 같은 방식으로 타입스크립트에서 try/catch 문을 프로미스 체이닝에 적용할 수 있습니다.