[typescript] 어떤 경우에 타입 추론을 사용하는 것이 적절한가?
  1. 변수 초기화: 변수를 선언할 때 초기값을 할당하면 해당 값의 타입이 추론됩니다.

     let str = "Hello"; // str은 string으로 추론됩니다.
    
  2. 함수 반환 값: 함수가 명시적인 타입을 가지지 않을 때, 반환 값으로부터 타입을 추론할 수 있습니다.

     function add(a: number, b: number) {
       return a + b; // 반환 값으로부터 number 타입을 추론합니다.
     }
    
  3. 배열과 객체 초기화: 배열이나 객체를 초기화할 때 요소들의 타입을 기반으로 타입을 추론합니다.

     let numbers = [1, 2, 3]; // numbers는 number[]으로 추론됩니다.
        
     let person = { name: "Alice", age: 30 }; // person은 { name: string, age: number }로 추론됩니다.
    
  4. 인터페이스와 제네릭 타입: 인터페이스나 제네릭 타입을 사용할 때, 자동으로 해당 타입을 추론합니다.

     interface Box<T> {
       value: T;
     }
    
     let box = { value: "test" }; // box는 Box<string>으로 추론됩니다.
    

타입 추론을 사용하면 코드를 간결하게 하고 실수를 줄일 수 있습니다. 그러나 가독성이나 명시성이 필요한 경우에는 명시적인 타입 선언을 고려해야 합니다.