타입스크립트에서 타입을 명시할 때 void 를 받을 때도 있고 any 를 받을 때도 있는데
둘 차이를 정확하게 정리하고 싶어서 포스팅 적는담..
📌 먼저 Promise 에 대해서 복습해보자.
https://khw063011.tistory.com/43
Promise는 비동기작업이 끝난후의 반환값, 즉 결과값을 명시하는 것이었다.
따라서 <void> 나 <any> 는 반환타입을 명시할 때 사용하는 방식으로 볼 수 있다.
🔍 Promise<void>
- 함수가 비동기작업을 완료한 후 아무값도 반환하지 않는 경우에 사용한다.
- 함수가 정상적으로 실행이 되고나서 결과로 아무런 값을 반환하지 않음을 명시적으로 나타낼 수 있는 것이다.
- 예를 들면 성공적으로 실행이 되고 나서도 추가적인 데이터를 반환하지 않는 경우에 사용이 된다.
- 로그를 기록하거나 단순히 어떤 작업을 실행한 후 종료하는 경우 적합
const logMessage = async (): Promise<void> => {
console.log("함수처리 완료 ");
// 함수는 아무런 값을 반환하지 않음
};
logMessage().then(() => {
// 아무런 반환 값이 없기 때문에 이곳에서 값을 받을 수 없음
console.log("함수끝");
});
🔍Promise<any>
- 비동기작업을 완료한 후 어떠한 값이라도 반환할 수 있음
- 예를들어.. 어떤 타입인지 확실하지 않거나.. 다양한 타입을 받는 것을 허용할 때 사용이 된다.
- any 이기 때문에 말 그대로 문자열, 숫자, 객체 어떤 값이든 반환할 수 있다.
- 비동기 함수가 특정 값을 반환할 것으로 기대할 때 사용하고 , 반환 타입을 명확하게 정의하기 어려운 상황에서 사용
const fetchData = async (): Promise<any> => {
// 데이터를 받아옴
const data = await axios.get('https://어쪼고/data');
return data;
};
fetchData().then(response => {
// response는 any 타입으로, 어떤 값이든 될 수 있음
console.log(response);
});
'TypeScript' 카테고리의 다른 글
[RN] 타입스크립트 개념 정리 (6) - 제네릭(Generic) 이란? (1) | 2024.08.24 |
---|---|
[RN] 타입스크립트 개념 정리 (5) - 클래스 의 this 와 new (0) | 2024.08.24 |
[RN] 타입스크립트 개념 정리 (4) - 클래스(Class) 란? (0) | 2024.08.24 |
[RN] 타입스크립트 개념 정리 (3) - 인터페이스란? (0) | 2024.08.24 |
[RN] 타입스크립트 개념 정리 (2) - 타입의 종류 (0) | 2024.08.24 |