함수를 매개변수로 전달시
445
6 asked
jQuery 타입 분석 Q&A 3분대에서,
(this : TElement , index : number , oldhtml : JQuery.htmlString)=> JQuery.htmlString
이라는 매개변수 자리에
function () {
return '<div>hello</div>'
}
를 전달하셨는데, 인수로 쓰이는 함수는 매개변수 개수가 똑같을 필요가 없다고 하셨습니다.
개인적인 추측으로는 반공변성과 관련이 있다고 생각이 드는데 , 질문에서 첫번째 함수가 두번째 함수의 서브타입이기 때문에, 첫번째 함수 자리에 두번째 함수를 대입할 수 있다고 이해해도 될까요?
그렇다면 이 예제에서 만약 전달하고 싶은 함수의 매개변수가 4개라면, 반공변성에 의해 어긋나서, 전달하지 못한다고 생각해도 될까요?
Answer 2
0
이미 답변해주신 건이지만 이렇게 이해해도 될지 궁금합니다!
(this : TElement , index : number , oldhtml : JQuery.htmlString)=> JQuery.htmlString
개발자가 넘긴 콜백함수를 받은 실제 jquery 라이브러리 내에서 호출할 때는 index, oldhtml등 지정된 타입의 매개변수들을 모두 넘겨 주지만(이 경우 매개변수 빠뜨리면 오류)
ex) jquery 내에서 callback(0, '<div></div>');
jquery 내에서 callback(0); // 오류
jquery 함수에 넘길 콜백함수를 정의할 때는 javascript와 같이 개발자 본인이 사용할 매개변수만 적은 것이다.
라고 이해해도 될까요?
0
아뇨 그냥 되는겁니다. 어렵게 생각할 필요 없습니다. 그 자리에는 그 매개변수가 존재하는 게 맞습니다. 다만 안 썼을 뿐인거죠. 안 쓰는 매개변수를 굳이 적을 필요가없으니 생략하는겁니다.
0
그냥 된다고 하시니 이해가 잘 안가네요…ㅜㅜ
그냥 return type만 같은 함수는 매개변수 개수가 달라도 상관없이 전달이 가능한 것인가요?
이부분은 이해가 아니라 외워야 하는 부분일까요?
2
[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

