• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

23.09.21 21:49 작성 23.09.21 21:58 수정 조회수 192

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

대원님의 프로필

대원

2023.09.21

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

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

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

0

paragraph님의 프로필

paragraph

2023.10.18

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