인프런 커뮤니티 질문&답변

신동마님의 프로필 이미지

작성한 질문수

[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편

void의 두 가지 사용법

11:48초 부분 질문입니다.

작성

·

259

·

수정됨

0

interface A {
	talk: () => void;
}
const a: A = {
	talk() { return 3; } // 타입스크립트는 메서드의 void니까 리턴값 3을 무시해버린다.
}
const b = a.talk(); // b의 타입이 void가 된다.

console.log(b) // 3

플레이 그라운드에서 돌려보니 b의 타입만 void 로 추론하고

b의 값은 3으로 찍히던데 리턴값을 아예 무시하는건 아닌가요?

 

타입스크립트 내부에서만 타입추론할때 무시한다는 뜻이겠죠?!

답변 2

2

네 void는 반환값이 없다인데 메서드로서 반환값이 없을 것이라고 타입을 지정해주는겁니다.

타입스크립트 지우면 아래와 같으니 3 이 반환되는건 당연합니다.

const a = {
  talk() { return 3; }
};
const b = a.talk(); // 3 
console.log(b); // 3

0

제로초님,
저도 위 질문과 동일한 생각이 들었었는데요 그러면 void가 코드읽는 사람에게 어떤 값을 반환하지 않는 것을 명시적으로 알려주는 용도라고 이해하면 될까요?