inflearn logo
강의

Khóa học

Chia sẻ kiến thức

TypeScript (TypeScript) được cắt thành từng miếng vừa một miếng ăn

함수 타입 호출 시그니처

Đã giải quyết

92

seong08145945

16 câu hỏi đã được viết

0

함수 타입 표현식이라고 설명하실 때는

type OnChange = (value: string) => void;

호출 시그니처 설명하실 떄는

type OnChange2 = {
    (value: string): void;
};

이런 형태로 각각 말씀해주셨는데요

그럼 함수 타입 표현식이냐, 호출 시그니처냐 차이점은 중괄호 존재 여부인걸까요?

객체 타입처럼 정의된 것이 아니면 호출 시그니처라고 볼 수 없는지 궁금합니다

typescript

Câu trả lời 1

0

winterlood

안녕하세요 루룸님 이정환입니다.

함수 타입 표현식과 호출 시그니쳐의 가장 핵심적인 차이점은 함수 타입 표현식은 해당 타입을 함수로 정의한다는 것이고, 호출 시그니쳐는 해당 타입을 객체로 정의한다는 것 입니다.

자바스크립트에서는 함수 또한 객체의 일종으로 분류되기 때문에 일반적인 객체가 그렇듯 프로퍼티를 가질 수 있습니다.

타입스크립트에서 호출 시그니처 문법을 사용하는 이유도 바로 이런 특성(함수도 프로퍼티를 가질 수 있다)을 타입 레벨에서 자연스럽게 표현하기 위해서인데요.

함수 타입 표현식은 “어떤 인자를 받아 어떤 값을 반환하는 함수”라는 호출 형태를 간결하게 나타내는 데 적합한 반면, 호출 시그니처는 여기에 더해 label 같은 추가 프로퍼티를 함께 정의하거나, 여러 형태의 호출을 오버로드처럼 묶어서 표현해야 할 때 특히 유용합니다.

즉, 두 표현은 모두 “호출 가능하다”는 의미를 담고 있지만, 호출 시그니처 쪽이 객체 타입을 기반으로 하기 때문에 확장성이 더 크다고 이해하시면 됩니다.

인덱스드 엑세스타입 실무질문

0

19

2

모든 ts파일이 컴파일 되지 않습니다.(해결됨.)

0

96

4

핸드북 light/dark mode 관련 이슈가 있는 것 같습니다.

0

71

1

제네릭 클래스 핸드북 페이지가 undefined라고 나옵니다.

0

76

2

적절한 타입 찾기 React.ChangeEvent<HTMLInputElemen>

0

76

2

outDir 옵션 추가 후 컴파일 오류 질문

0

185

1

호출 시그니처 질문

0

112

2

서로소 유니언 타입이 discriminated union과 동의어 인가요?

0

131

2

조건부타입소개 중 함수오버로딩 활용 시 인수의타입과 함수의 반환값의 타입이 깨지는 문제

0

101

1

할인쿠폰 관련하여

0

228

2

프론트엔드에서의 인터페이스활용

0

142

2

안녕하세요 이정환님!

0

125

1

Node.js 설치에 관한 질문입니다.

0

130

2

35강. 모듈 보강은 라이브러리 파일을 직접 편집해야 하나요?

0

98

2

인터페이스 문법이 있는데 타입 별칭 문법은 왜 있나요?

0

153

4

마우스 호버 시 정보

0

134

2

vite으로 리액트 빌드하기를 업데이트해주세요.

1

115

2

타입가드를 만들어 사용하는 이유가 궁금합니다.

0

128

2

섹션 12가 너무 어려운데... 정상이겠죠..?

0

172

2

선생님.. 알고리즘도 강의해주시면안되나요

0

143

2

선생님은 어떻게 이런걸 아세요?

0

165

1

type: module

0

139

2

7:17초 업캐스팅 질문이있습니다!

0

107

1

슈퍼타입질문

1

105

2