// 함수의 타입만 정의하고 정의에 generic 을 추가해야 한다면
// type alias
type HelloFunctionGeneric1 = <T>(message: T) => T;

const HelloFunction1: HelloFunctionGeneric1 = <T>(message: T): T => {
  return message;
};

// interface
interface HelloFunctionGeneric2 {
  <T>(message: T): T;
}

const HelloFunction2: HelloFunctionGeneric2 = <T>(message: T): T => {
  return message;
};