-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
제네릭 extends 함수로 한 경우
23.06.23 13:00 작성 23.06.23 13:00 수정 조회수 190
0
function test<T extends (a: number, b: string) => boolean>(callback: T): void {
return;
}
const callback = (a: number) => {return true};
const callback2 = (a: string) => {return true};
const callback3 = () => {return true};
test(callback); // OK
test(callback2); // ERROR
test(callback3); // OK
playground에서 위 코드 입력시 callback2에서만 오류가 나고 나머진 통과됩니다.
제네릭에선 a, b 옵셔널이 아닌 두 매개변수를 정했는데 왜 빈값 혹은 1개만 넣어도 충족되는지 궁금합니다.
답변을 작성해보세요.
1
조현영
지식공유자2023.06.23
콜백 함수인 경우는 기본적으로 매개변수 생략 가능합니다. 자바스크립트 생각해보시면
addEventListener('click', () => {})
addEventListener('click', (e) => {})
둘 다 되는 것처럼요.
답변 1