강의

멘토링

로드맵

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

신동마님의 프로필 이미지
신동마

작성한 질문수

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

void의 두 가지 사용법

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

작성

·

334

·

수정됨

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가 코드읽는 사람에게 어떤 값을 반환하지 않는 것을 명시적으로 알려주는 용도라고 이해하면 될까요?

함수의 리턴값에서의 void에 대해서는, 저도 그렇게 이해하고 있습니다!

제로초님이 말씀하셨던 것처럼 매개변수의 void와 콜백함수의 void와는 느낌이 사뭇 다릅니다.

신동마님의 프로필 이미지
신동마

작성한 질문수

질문하기