[typescript] 타입 어노테이션을 통한 인터페이스 설정

TypeScript는 정적 타입을 지원하는 프로그래밍 언어로, JavaScript에 타입을 추가하고 컴파일 시간에 타입을 체크하여 안정성을 높여줍니다. TypeScript에서는 타입 어노테이션을 사용하여 변수, 함수, 클래스 등의 타입을 명시적으로 설정할 수 있습니다.

타입 어노테이션의 필요성

JavaScript는 동적 타입 언어로, 변수의 타입을 런타임 시에 결정합니다. 이는 오류 발생 가능성을 높일 수 있습니다. TypeScript는 이러한 상황을 방지하기 위해 타입 어노테이션을 제공합니다. 이를 통해 코드의 가독성을 높이고 예상치 못한 오류를 사전에 방지할 수 있습니다.

변수와 함수에 타입 어노테이션 적용

변수에 타입 어노테이션 적용

let name: string;
let age: number;
let isAdult: boolean;

함수에 타입 어노테이션 적용

function greet(name: string): void {
  console.log(`Hello, ${name}!`);
}

인터페이스에 타입 어노테이션 적용

interface Person {
  name: string;
  age: number;
  isAdult: boolean;
}

function printPerson(person: Person): void {
  console.log(`Name: ${person.name}, Age: ${person.age}`);
}

클래스에 타입 어노테이션 적용

class Person {
  constructor(public name: string, public age: number) {}
  getDetails(): string {
    return `${this.name}, ${this.age}`;
  }
}

타입 어노테이션을 통한 인터페이스 설정

인터페이스 생성

인터페이스는 데이터 구조를 정의하고, 타입 어노테이션을 통해 인터페이스를 적용할 수 있습니다.

interface Product {
  id: number;
  name: string;
  price: number;
}

function printProduct(product: Product): void {
  console.log(`Product ID: ${product.id}, Name: ${product.name}, Price: ${product.price}`);
}

인터페이스 확장

인터페이스는 확장되어 더 큰 범위의 데이터 구조를 정의할 수 있습니다.

interface DiscountedProduct extends Product {
  discountPercentage: number;
}

function printDiscountedProduct(product: DiscountedProduct): void {
  const discountedPrice = product.price - (product.price * product.discountPercentage / 100);
  console.log(`Product ID: ${product.id}, Name: ${product.name}, Price: ${discountedPrice}`);
}

타입 어노테이션을 통한 인터페이스 설정은 TypeScript 코드의 안정성을 높이고 유지보수를 용이하게 합니다.

결론

타입 어노테이션을 통한 인터페이스 설정은 TypeScript의 가장 강력한 기능 중 하나입니다. 이를 통해 코드의 가독성과 안정성을 높일 수 있으며, 개발자들이 안전하고 효율적으로 코드를 작성할 수 있도록 도와줍니다.

참고문헌: