ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TypeScript] 타입스크립트 인터페이스
    Web/TypeScript 2024. 11. 20. 17:21


    - 인터페이스란?

     

    인터페이스는 객체 타입을 지정할 때 사용하는 문법이다.

     

    인터페이스는 다음과 같은 문법을 가진다.

    interface 타입명 {
        속성:타입, 
        ...
    }

     

     

    다음은 인터페이스병합되는 코드이다.

    // interface1.ts
    interface Person {
      name: string;
      age: number;
    }
    
    // interface2.ts
    interface Person {
      email: string;
      phone?: string;
    }
    
    // main.ts
    const john: Person = {
      name: "John Doe",
      age: 30,
      email: "john.doe@example.com",
      phone: "123-456-7890"
    };
    
    console.log(john);

     

     

    인터페이스상속 또한 가능하다.

    // 기본 인터페이스 정의
    interface Animal {
      name: string;
      age: number;
      makeSound(): void;
    }
    
    // Animal 인터페이스를 상속받는 Dog 인터페이스 정의
    interface Dog extends Animal {
      breed: string; // 추가적인 프로퍼티
      bark(): void; // 추가적인 메서드
    }
    
    const dog1: Dog = {
        name: "멍멍이",
        age: 3,
        breed: "진돗개",
        makeSound() {
            console.log("멍멍");
        },
        bark() {
            console.log("왈왈");
        },
    };

     

    이렇게 되면 dog1은 name, age, makeSound(), breed, bark() 프로퍼티와 메서드 모두를 갖게 된다.

     

     

    다음으로는, 변수에 인터페이스를 적용하는 예제이다.

    interface IUser {
        name: string;               // 이름은 문자열
        age: number;                // 나이는 숫자
        introduce: () => string;    // introduce는 문자열을 반환하는 함수
    }
    
    const user: IUser = {
        name: "choi",
        age: 26,
        introduce() {
            return `Hello, my name is ${this.name} and I'm ${this.age} years old.`;
        },
    };

     

     

    다음으로는, 함수에 인터페이스를 적용하는 예제이다.

    interface IAdd {
        (a: number, b: number): number;
    }
    
    const add: IAdd = (a, b) => a + b;
    interface IPerson {
        name: string;
        age: number;
    }
    
    function averageAge(people: IPerson[]): number {
        return people.reduce((acc, person) => acc + person.age, 0) / people.length;
    }
    
    const average = averageAge([
        { name: "John", age: 30 },
        { name: "Jane", age: 25 },
        { name: "Jim", age: 20 },
    ]);
    
    console.log(average);

     


    참고 강의: https://www.sucoding.kr/
Designed by Tistory.