타입스크립트에서 Promise의 타입을 정의하는 방법은 무엇인가요?
_____A1: Promise는 제네릭 타입으로, `Promise
```typescript
const promise: Promise
resolve(42);
});
```
---
Q2: Promise가 reject할 때 에러 타입도 정의할 수 있나요?
A2: 기본적으로 `Promise
---
Q3: async 함수의 반환 타입으로 Promise를 명시하려면 어떻게 해야 하나요?
A3: async 함수는 항상 Promise를 반환하므로, 반환 타입으로 `Promise
```typescript
async function fetchData(): Promise
return "data";
}
```
---
Q4: Promise 내부의 값이 여러 타입일 수 있으면 어떻게 타입을 지정하나요?
A4: 유니언 타입을 사용할 수 있습니다.
```typescript
const promise: Promise
resolve(null);
});
```
---
Q5: Promise.all 등의 유틸리티 함수는 타입스크립트에서 어떻게 타입이 정의되나요?
A5: `Promise.all`은 배열 안의 모든 Promise가 resolve 된 값을 포함하는 배열 타입을 반환합니다.
```typescript
const p1 = Promise.resolve(1);
const p2 = Promise.resolve("text");
const combined: Promise<[number, string]> = Promise.all([p1, p2]);
```
---
Q6: 타입스크립트에서 Promise를 적절하게 사용하기 위한 팁이 있나요?
A6:
- 가능하면 Promise의 resolve 타입을 명확히 지정해 오류를 방지하세요.
- reject 값은 any이므로, 에러 처리는 try-catch에서 하거나 커스텀 에러 타입을 통해 관리하세요.
- async-await과 함께 쓰면 타입 추론이 잘 되므로 직관적입니다.
---
요약: 타입스크립트에서 Promise 타입은 `Promise
Promise는 비동기 작업의 결과를 나타내는 객체로, 성공적으로 완료되었을 때의 값 또는 실패했을 때의 오류를 처리할 수 있습니다.
타입스크립트는 이러한 Promise의 타입을 명확하게 정의할 수 있는 기능을 제공합니다.
기본적인 Promise 타입 정의 Promise는 제네릭 타입으로 정의되어 있습니다.
기본적인 형태는 다음과 같습니다: ```typescript Promise
예를 들어, 문자열을 반환하는 Promise는 다음과 같이 정의할 수 있습니다: ```typescript const promise: Promise
`resolve` 함수는 비동기 작업이 성공적으로 완료되었을 때 호출되며, 이 경우 "Hello, World!"라는 문자열이 반환됩니다.
Promise의 실패 타입 정의 Promise는 성공적인 결과뿐만 아니라 실패한 경우의 타입도 정의할 수 있습니다.
일반적으로 Promise는 성공과 실패를 처리하기 위해 두 가지 타입을 사용합니다.
성공적인 결과의 타입과 실패한 경우의 오류 타입을 정의할 수 있습니다.
예를 들어: ```typescript const promise: Promise
Promise의 실패 타입을 명시적으로 정의하고 싶다면, 다음과 같이 할 수 있습니다: ```typescript type MyPromiseResult = Promise
비동기 함수와 Promise 타입스크립트에서는 `async`와 `await` 키워드를 사용하여 비동기 함수를 정의할 수 있습니다.
`async` 함수는 항상 Promise를 반환합니다.
예를 들어: ```typescript async function fetchData(): Promise
이 함수를 호출할 때는 `await`를 사용하여 결과를 기다릴 수 있습니다: ```typescript async function main() { const data = await fetchData(); console.log(data); // "Fetched data" } ``` 복합적인 Promise 타입 정의 Promise는 여러 개의 값을 반환할 수도 있습니다.
이 경우에는 튜플이나 객체를 사용하여 여러 값을 포함하는 타입을 정의할 수 있습니다.
예를 들어: ```typescript type ApiResponse = { data: string; status: number; }; const fetchApiData = (): Promise
이처럼 복합적인 타입을 사용하여 Promise의 반환값을 더욱 명확하게 정의할 수 있습니다.
결론 타입스크립트에서 Promise의 타입을 정의하는 방법은 매우 유연하고 강력합니다.
기본적인 Promise의 사용부터 시작하여, 실패 타입, 비동기 함수, 복합적인 타입 정의까지 다양한 방식으로 Promise를 활용할 수 있습니다.
이를 통해 비동기 작업의 결과를 명확하게 타입으로 정의하고, 코드의 가독성과 안정성을 높일 수 있습니다.
타입스크립트를 사용하여 Promise를 정의하고 활용하는 것은 비동기 프로그래밍에서 매우 중요한 부분이며, 이를 통해 더욱 안전하고 유지보수하기 쉬운 코드를 작성할 수 있습니다.
작성자:
최다현 [비회원]
| 작성일자: 1년 전
2024-09-10 05:32:10
조회수: 143 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 143 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.