inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

옵셔널, 제네릭 기본

제네릭에서 질문입니다.

372

작성자 없음

작성한 질문수 0

0

function add<T extends (a: string) => number>(x: T): T { return x }; 

add((a)=>+a)

위 코드 add((a)=>+a) 에서 인자 a가 왜 string으로 인식되는지 , +a가 왜 숫자로 인식되는지 이해가 가지 않습니다.

제네릭 typescript

답변 2

1

제로초(조현영)

T extends (a: string) => number
에서 a가 string이라는 게 정해져있습니다.
그리고 문자열 '1'이 있다고 하면 +'1'은 숫자 1입니다.

0

죤죤

그리고 문자열 '1'이 있다고 하면 +'1'은 숫자 1입니다.

-> 이 부분은 이해 했습니다. (아래 링크 참고)

 https://stackoverflow.com/questions/6682997/what-is-the-purpose-of-a-plus-symbol-before-a-variable

 

T extends (a: string) => number
에서 a가 string이라는 게 정해져있습니다.

-> 이 부분이 여전히 이해가 가지 않습니다.

제가 이해하기로 a는 함수 add의 매개변수인 콜백함수의 매개변수로, 타입이 string 입니다.

근데 어떻게 함수 밖에서 string으로 정해져 있는건가요? 스코프가 달라서 함수 밖에서의 a는 아무것도 아니지 않나요?

0

제로초(조현영)

add의 매개변수인 콜백함수의 타입이 T인 건 이해하셨죠? T는 (a: string) => number 꼴이고요.

매개변수인 콜백함수를 타이핑한 셈이니 콜백함수의 매개변수와 리턴값도 타이핑이 된 것입니다.

0

제로초(조현영)

스코프와는 전혀 상관 없는 이야기입니다.

0

죤죤

이해했습니다! 감사합니다.

콜백함수를 제대로 이해하고 있지 못했던 것 같습니다.

데코레이터가 현재도 자주 쓰이는 문법인가요?

0

81

2

유틸리티 타입 실제로 구현은 못해도 하나씩 외우면 실무할 때 지장 없겠죠?

0

66

1

매핑 타입은 type에서밖에 안된다고 하네요?

0

65

2

자바에서의 오버로딩과 같은 개념이라고 생각해도 되나요?

0

69

2

filter 함수 반환 타입 네로잉 질문

0

74

2

map<U>(callbackfn: ....) 할때 U는 왜 여기 있는거에요??

0

48

2

ts 컴파일을 위한 type 라벨링 부분

0

46

1

concat 함수 타입 구현 중 질문 있습니다!

0

100

2

filter 메소드 질문

0

53

1

forEach 제네릭 관련 문의

0

60

1

타입 추론 시 가장 넓은 범위로 추론이 되는 건가요?

0

165

1

enum이 javascript로 트랜스파일링될때 사라진다하셨는데요

0

207

1

함수 파라미터 타입 정의 시 ...args: any[]와 ...args: any 의 차이

0

223

1

Flat type에서 ReadonlyArray 타입을 사용하는 이유?

0

157

1

bind type 질문

1

149

1

Lowercase type 관련 질문

0

152

1

key-value 타입 자동추론 질문드립니다

0

266

1

타입스크립트 교과서, p131

0

266

1

타입스크립트 교과서 p122 forEach 메서드 질문

0

232

1

타입스크립트 교과서 p116 , 코드에러남

1

269

1

타입스크립트 교과서 p112 , 코드가 안읽힙니다..

0

266

1

타입스크립트 교과서 p83

1

184

1

타입스크립트교과서 p39 쪽 코드가 이해가 안되요

1

227

1

class 에서 ts의 private vs js의 private field( # )

0

339

1