이처럼 타입스크립트가 추론을 통해 타입을 알아낼 수 있는 경우 직접 <>에 타입을 넣지 않아도 됩니다. 실제로도 직접 넣지 않는 경우가 더 많습니다.
타입스크립트 5.0 버전에서는 상수 타입 매개변수가 추가되었습니다.
function values<T>(initial: T[]) {
return {
hasValue(value: T) { return initial.includes(value) },
};
}
const savedValues = values(["a", "b", "c"]);
savedValues.hasValue("x");
이 코드에서 타입 매개변수 T는 무엇으로 추론될까요? ['a', 'b', 'c']가 T[]인 상황입니다. ['a', 'b', 'c']는 string[]으로 추론되므로 T는 string이 됩니다. 그래서 value 매개변수도 string이 되고, hasValue("x")를 해도 문제가 없습니다.