
204
2
부
특징
함수가 여러 개의 타입 매개변수를 선언하면 해당 함수에 대한 호출은 명시적으로 제네릭 타입을
모두 선언하지 않거나 모두 선언해야 합니다. 타입스크립트는 아직 제네릭 호출 중 일부 타입
만을 유추하지는 못합니다.
다음
makePair
는 두 개의 타입 매개변수를 받으므로 두 개를 모두 명시적으로 지정하거나 지
정하지 않아야 합니다.
function makePair<Key, Value>(key: Key, value: Value) {
return { key, value };
}
// Ok: 타입 인수가 둘 다 제공되지 않음
makePair("abc", 123); // 타입: { key: string; value: number }
// Ok: 두 개의 타입 인수가 제공됨
makePair<string, number>("abc", 123); // 타입: { key: string; value: number }
makePair<"abc", 123>("abc", 123); // 타입: { key: "abc"; value: 123 }
makePair<string>("abc", 123);
// ~~~~~~// ~~~~~~
// Error: Expected 2 type arguments, but got 1.// Error: Expected 2 type arguments, ...