5.0 버전에서는 상수 타입 매개변수가 도입되어 다음과 같이 해도 됩니다.

    function values<const T>(initial: T[]) {
      return {
        hasValue(value: T) { return initial.includes(value) },
      };
    }
    
    const savedValues = values(["a", "b", "c"]);
    savedValues.hasValue("x");
    // Argument of type '"x"' is not assignable to parameter of type '"a" | "b" | "c"'.
    

    타입 매개변수 앞에 const 수식어를 추가하면 타입 매개변수 T를 추론할 때 as const를 붙인 값으로 추론됩니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.