[typescript] 제네릭을 활용하여 다중 타입을 처리하는 예시를 보여주세요.

다음은 제네릭을 활용하여 배열에서 특정 값을 찾는 함수를 작성하는 예시입니다.

function findValue<T>(arr: T[], value: T): number {
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === value) {
      return i;
    }
  }
  return -1;
}

let numbers = [1, 2, 3, 4, 5];
let index1 = findValue(numbers, 3); // index1에는 2가 저장됨

let names = ["Alice", "Bob", "Charlie"];
let index2 = findValue(names, "Bob"); // index2에는 1이 저장됨

위의 코드에서 findValue 함수는 제네릭 타입 T를 사용하여 배열과 값을 전달받아 해당 값의 인덱스를 반환합니다. 이를 통해 findValue 함수는 숫자 배열이나 문자열 배열 등 다양한 타입의 배열에 대해 재사용할 수 있습니다.

이와 같이 제네릭을 활용하면 코드의 재사용성을 높일 수 있으며, 타입 안정성을 유지하면서 다양한 타입에 대해 유연하게 처리할 수 있습니다.