-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[4장] 함수 #5
Comments
다음 map 함수를 TypeScript의 제네릭을 이용하여 구현해 보세요!
퀴즈 정답
} |
다음 중 호출 시그니처(call signature) 의 특징이 아닌 것은?
퀴즈 정답
옳지 않는 것은 1번 입니다!
함수 호출 시그니처는 타입 수준 코드의 타입 정보만 포함합니다. 반환 타입, 나머지 타입, 조건부 타입을 표현할 수 있지만 기본값은 표현할 수 없다. 기본 값은 타입이 아니라 값이다. (69페이지 참조) |
다음 오버로딩의 문제점은? declare function fn(x: unknown): unknown;
declare function fn(x: HTMLElement): number;
declare function fn(x: HTMLDivElement): string; 퀴즈 정답제일 첫번째로 매칭되는 오버로드 함수 타입으로 추론된다. 따라서 general한 타입일수록 후순위에 정의해야한다. |
|
아래 코드에서 에러가 나는 이유는? function fill(length: number, value: string): string[] {
return Array.from({ length }, () => value);
}
function call<T extends unknown[], R>(f: (...args: T) => R, ...args: T): R {
return f(...args);
}
let a = call(fill, 10, 'a');
let b = call(fill, 10); //에러: 3개의 인수가 필요하지만 2개가 전달됨 퀴즈 정답
f: (...args: T) => R은 fill 함수를 뜻하고, ...args: T는 fill 함수의 매개변수를 뜻하는 것이므로 fill 함수에는 2개의 매개변수만 받기 때문에 let b에서 오류가 발생했다.
|
퀴즈 정답
|
[4장 퀴즈]
함수
아래 마크다운을 복사 붙여넣기해서 코멘트로 퀴즈를 달아주세요 :)
객관식, 주관식에 상관없이 편하게 만들어주세요!
부가 설명을 달고 싶다면, 해설을 정답과 함께 옵션으로 작성하시면 됩니다.☺️
예시
The text was updated successfully, but these errors were encountered: