[typescript] 타입 어노테이션의 주의사항 및 사용 권장 사례

타입스크립트에서 타입 어노테이션은 코드를 더 명확하고 안정적으로 만드는 데 도움을 줍니다. 다만, 몇 가지 주의사항과 권장 사례가 있습니다.

1. 변수, 함수, 클래스에 타입 어노테이션 사용

변수, 함수, 클래스 등의 타입 어노테이션을 명시적으로 지정하는 것은 좋은 습관입니다. 이를 통해 코드의 가독성이 향상되고, 잠재적인 버그를 사전에 방지할 수 있습니다.

// 변수에 타입 어노테이션 사용
let name: string = "John";

// 함수의 매개변수와 반환값에 타입 어노테이션 사용
function greet(person: string): string {
  return `Hello, ${person}!`;
}

// 클래스의 속성과 메서드에 타입 어노테이션 사용
class Person {
  name: string;
  
  constructor(name: string) {
    this.name = name;
  }
}

2. 타입 추론을 활용

타입스크립트는 타입 추론을 통해 변수의 타입을 자동으로 추측할 수 있습니다. 별다른 이유가 없다면 타입 어노테이션을 생략하고 타입 추론을 활용하는 것이 좋습니다.

// 타입 추론을 활용
let name = "John"; // 타입: string
let age = 30; // 타입: number

3. any 타입을 지양

가능한 한 any 타입을 사용하는 것은 지양해야 합니다. any 타입을 사용하면 타입스크립트의 장점인 타입 안정성을 확보할 수 없으며, 컴파일 시점에서의 타입 확인이 무의미해집니다.

// any 타입 지양
let value: any = 10;
value = "hello"; // 컴파일 에러가 발생하지 않음

4. 제네릭 사용

함수나 클래스를 선언할 때 제네릭을 사용하면 여러 타입에서 재사용할 수 있는 유연한 코드를 작성할 수 있습니다. 따라서 필요한 경우에는 제네릭을 적극 활용하는 것이 좋습니다.

// 제네릭 사용 예시
function identity<T>(arg: T): T {
  return arg;
}

let output = identity<string>("myString"); // 타입: string

타입 어노테이션을 적절히 사용하고, 타입 추론을 활용하며, any 타입을 지양하고, 제네릭을 활용하는 것이 타입스크립트 코드를 안정적으로 유지하는 데 큰 도움이 됩니다.

참고 문헌: