inflearn logo
강의

講義

知識共有

[リニューアル] TypeScriptオールインワン:Part2. 実践分析編

Q&A

함수를 매개변수로 전달시

445

ehdtodvodl4323

投稿した質問数 6

0

jQuery 타입 분석 Q&A 3분대에서,

(this : TElement , index : number , oldhtml : JQuery.htmlString)=> JQuery.htmlString

이라는 매개변수 자리에

function () {

return '<div>hello</div>'

}

를 전달하셨는데, 인수로 쓰이는 함수는 매개변수 개수가 똑같을 필요가 없다고 하셨습니다.

개인적인 추측으로는 반공변성과 관련이 있다고 생각이 드는데 , 질문에서 첫번째 함수가 두번째 함수의 서브타입이기 때문에, 첫번째 함수 자리에 두번째 함수를 대입할 수 있다고 이해해도 될까요?

그렇다면 이 예제에서 만약 전달하고 싶은 함수의 매개변수가 4개라면, 반공변성에 의해 어긋나서, 전달하지 못한다고 생각해도 될까요?

 

 

typescript

回答 2

0

hajeonghun

이미 답변해주신 건이지만 이렇게 이해해도 될지 궁금합니다!

(this : TElement , index : number , oldhtml : JQuery.htmlString)=> JQuery.htmlString

개발자가 넘긴 콜백함수를 받은 실제 jquery 라이브러리 내에서 호출할 때는 index, oldhtml등 지정된 타입의 매개변수들을 모두 넘겨 주지만(이 경우 매개변수 빠뜨리면 오류)

ex) jquery 내에서 callback(0, '<div></div>');

jquery 내에서 callback(0); // 오류

jquery 함수에 넘길 콜백함수를 정의할 때는 javascript와 같이 개발자 본인이 사용할 매개변수만 적은 것이다.

라고 이해해도 될까요?

0

zerocho

네, 원래 함수는 callback에 모든 인수를 넣어서 호출해줍니다. 다만 인수로 넣은 모든 값을 매개변수로 다 사용할 필요가 없으므로 생략 가능합니다.

0

zerocho

아뇨 그냥 되는겁니다. 어렵게 생각할 필요 없습니다. 그 자리에는 그 매개변수가 존재하는 게 맞습니다. 다만 안 썼을 뿐인거죠. 안 쓰는 매개변수를 굳이 적을 필요가없으니 생략하는겁니다.

0

ehdtodvodl4323

그냥 된다고 하시니 이해가 잘 안가네요…ㅜㅜ

그냥 return type만 같은 함수는 매개변수 개수가 달라도 상관없이 전달이 가능한 것인가요?

이부분은 이해가 아니라 외워야 하는 부분일까요?

2

zerocho

[1, 2, 3].forEach((v, i, a) = { console.log(v) })

forEach 함수는 원래 이런 모양입니다. 그런데 v i a 매개변수를 다 안쓰는 경우에는 굳이 적을 필요없이

[1, 2, 3].forEach((v) = { console.log(v) }) 하잖아요? 근데 그렇다고 i랑 a가 존재 안하는 게 아니죠. 있는데 안 써서 안 적은겁니다. 매개변수의 개수가 다른게 아닙니다.

jQuery에서도 이것과 똑같은 겁니다.

타입 오버라이딩

0

78

2

React19에서 useRef 타입 정의의 변화

0

128

2

jQuery를 $로 한 번 더 감싼 형태

0

58

1

typescript interface를 jsdoc으로 주석달 때

0

234

2

declare module시 import 위치

0

198

2

declare global 로 선언된 타입을 확장하는게 아닌 좁히는것도 가능할가요?

0

148

2

typescript 강의를 보고 개발을 하다가 강의와 다른 내용인데 물어볼곳이 여기밖에 없어서 질문 드립니다.

0

237

1

강의에 필요한 사전준비와 예제 코드 첨부

1

311

1

local.ts 예제코드 첨부 합니다.

1

230

1

redux 예제코드 가져와서 강의 보면서 따라하는데

1

248

1

react 함수 컴포넌트 타이핑은 있는데 클래스 컴포넌트 타이핑 예제 코드가 없네요.

1

287

1

axios 1.6.0 버전으로 보고 있는데영

4

393

1

Module '"axios"' has no default export 에러 나시는분들

0

881

1

안녕하세요, 제로초님 타입스크립트 axios 분석 강의보고 궁금한점이 있어서 질문드립니다

1

389

1

안녕하세요. 제로초님 당신의 강의 매니아 입니다. typescript 모듈 관련 질문이 있어서요.

0

269

1

axios catch 에서 error 타입에 대해 as 없이 이렇게 사용하면 어떨까요?

0

406

1

global 선언 시 export {}

0

298

1

initialState가 제네릭 S인 이유가 잘 이해가 되지 않습니다.

0

310

1

declare module vs declare namespace

0

478

1

declare namespace vs namespace

0

500

2

"axios": "1.4.0" 버전 axios type 코드가 강의와 다릅니다!

0

561

1

Redux type 설정 과정에서 발생한 오류 질문 (ts[2345])

1

383

2

index.d.ts 에서 global declare 선언을 했을 때와 하지 않았을 때의 차이

0

409

1

미들웨어가 커링패턴으로 이루어진 이유

0

442

1