[typescript] 클래스와 인터페이스에 대한 타입 추론 및 타입 어노테이션

TypeScript는 정적 타입 지정을 통해 JavaScript 개발 시 발생할 수 있는 오류를 사전에 방지할 수 있는 강력한 도구입니다. 이를 통해 클래스와 인터페이스에 대한 타입 추론과 타입 어노테이션을 이해할 수 있습니다.

클래스의 타입

TypeScript는 클래스의 멤버 변수와 함수의 매개변수, 반환값 등을 분석하여 타입을 추론합니다. 만약 명시적으로 타입을 지정하고 싶다면, 타입 어노테이션을 사용할 수 있습니다.

class Person {
  name: string; // 타입 어노테이션
  age = 20; // 타입 추론
  constructor(name: string) {
    this.name = name;
  }
  greet(message: string): string {
    return `Hello, ${this.name}! ${message}`;
  }
}

const person = new Person("Alice");
console.log(person.greet("Nice to meet you!"));

위 코드에서 name: string은 타입 어노테이션이고, age의 타입은 타입 추론에 의해 자동으로 number로 결정됩니다.

인터페이스의 타입

인터페이스를 사용하여 객체의 구조에 대한 타입을 정의할 수 있습니다. 타입 어노테이션을 통해 인터페이스를 사용할 수 있습니다.

interface Point {
  x: number;
  y: number;
}

function getDistance(point1: Point, point2: Point): number {
  const dx = point2.x - point1.x;
  const dy = point2.y - point1.y;
  return Math.sqrt(dx * dx + dy * dy);
}

위 코드에서 Point 인터페이스는 xy라는 멤버 변수를 가진 객체 타입을 정의합니다.

이처럼 TypeScript는 클래스와 인터페이스에 대한 타입 추론 및 타입 어노테이션을 통해 안정적인 코드 작성을 도와줍니다.

더 많은 정보는 TypeScript 공식 문서에서 확인할 수 있습니다.