타입스크립트 Interface란?: TypeScript Interface 이해와 활용

타입스크립트 Interface란?: TypeScript Interface 이해와 활용

들어가며

때로는 개발을 하다가 어떤 것이 잘못되었는지, 혹은 잘 사용하고 있는 것인지 불안감을 느끼곤 합니다. TypeScript의 interface도 그렇습니다. 처음에는 그냥 단순한 타입 정의도구로만 생각할 수 있지만, 사실은 그보다 더 강력한 기능을 갖고 있습니다.


1. Interface란 무엇인가?

Interface는 TypeScript에서 객체의 타입을 정의하는데 사용됩니다. 또한, 클래스나 함수에 특정 조건을 부여하는 역할도 합니다.

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

위의 예제에서 Person이라는 인터페이스는 nameage 프로퍼티를 갖는 객체의 타입을 정의합니다.

2. Optional properties와 Readonly properties

모든 프로퍼티가 필수적이지 않을 수 있습니다. 이런 경우 optional property를 사용할 수 있습니다.

interface Worker {
    name: string;
    role?: string;
}

이 경우 role은 옵셔널입니다. 반대로, 특정 프로퍼티를 수정 불가능하게 하려면 **readonly**를 사용하면 됩니다.

interface ImmutablePerson {
    readonly name: string;
    age: number;
}

ImmutablePerson 인터페이스의 name 프로퍼티는 수정할 수 없습니다.

3. Function Types with Interface

인터페이스는 객체뿐만 아니라 함수의 타입까지도 정의할 수 있습니다.

interface SearchFunc {
    (source: string, subString: string): boolean;
}

이 인터페이스는 sourcesubString 두 개의 문자열 인자를 받아 boolean 값을 반환하는 함수를 정의합니다.

4. 확장과 구현: Extending Interfaces

때로는 여러 인터페이스의 조합이 필요할 때가 있습니다. 인터페이스를 확장하여 새로운 인터페이스를 만들 수 있습니다.

interface Animal {
    move(): void;
}

interface Bird extends Animal {
    fly(): void;
}

BirdAnimal의 모든 멤버를 상속받고, 추가로 fly 메서드도 갖게 됩니다.

5. 클래스와 Interface: implements 활용하기

TypeScript에서 클래스는 인터페이스를 implements를 사용하여 구현할 수 있습니다. 이를 통해 클래스가 특정 조건을 만족하도록 강제할 수 있습니다.

interface Movable {
    move(distance: number): void;
}

class Car implements Movable {
    move(distance: number) {
        console.log(`Car moved ${distance} meters.`);
    }
}

마치며

TypeScript의 interface타입 체계의 핵심입니다. 타입의 안전성을 높이고 코드의 품질을 향상시키는 데 큰 역할을 합니다. 이를 잘 활용하면 더욱 견고한 애플리케이션을 구축할 수 있습니다.

함께 읽으면 좋은 글

타입스크립트 Enum이란? : Typescript Enum 활용 방법
서론 안녕하세요. 독자님들 ! IT 개발자 블로그를 시작하려는 분들께 TypeScript의 Enum에 대한 이해와 그 활용법에 대해 소개하고자 합니다. 만약 여러분이 Enum이 무엇이며, 왜 사용해야 하는지 궁금하다면, 이 글이 그 해답을 제공해 드릴 것입니다. 1. TypeScript Enum이란? Enum(enumeration)은 고정된 상수의 집합을 의미합니다. TypeScript에서 Enum은 여러 상수 값을 한 곳에 묶어
타입스크립트 Pick란?: 타입스크립트 Pick 이해와 활용
서론 프로그래밍에서 사용하는 도구나 라이브러리의 이해는 중요하다고 할 수 있습니다. 특히, 타입스크립트에서 제공하는 유틸리티 타입 중 Pick은 꼭 알아두어야 하는 중요한 도구 중 하나입니다. 하지만, 이를 잘못 사용하면 복잡성을 증가시킬 수 있습니다. 이 글에서는 타입스크립트의 Pick 유틸리티 타입에 대한 깊은 이해와 효율적인 활용 방법에 대해 알아보겠습니다. 1. Pick이란? 타입스크립트에서 Pick은