-
[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/
'Web > TypeScript' 카테고리의 다른 글
[TypeScript] 타입스크립트 제네릭 (1) 2024.11.20 [TypeScript] 타입 별칭(Type Alias) (0) 2024.11.20 [TypeScript] 타입 오퍼레이터 (2) 2024.11.19 [TypeScript] 타입스크립트 함수 타입 (0) 2024.11.19 [TypeScript] 타입스크립트 기본 타입 (3) 2024.11.15