상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 타입스크립트에서 타입을 확장하는 방법은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
<a href='https://sangseek.com/sangseeks/타입스크립트/ko'>타입스크립트</a>(<a href='https://sangseek.com/sangseeks/TypeScript/ko'>TypeScript</a>)는 <a href='https://sangseek.com/sangseeks/자바/ko'>자바</a>스크립트의 상위 집합으로, 정적 타입을 지원하여 코드의 안정성과 가독성을 높이는 데 도움을 줍니다. 타입스크립트에서 타입을 확장하는 방법은 여러 가지가 있으며, 이는 <a href='https://sangseek.com/sangseeks/객체지향/ko'>객체지향</a> 프로그래밍의 상속 개념과 유사합니다. 여기서는 타입 확장의 다양한 방법을 자세히 설명하겠습니다. 1. 인터페이스 확장 인터페이스는 타입스크립트에서 객체의 구조를 정의하는 데 사용됩니다. 인터페이스를 확장하면 기존 인터페이스의 속성을 포함하면서 새로운 속성을 추가할 수 있습니다. ```typescript interface Person { name: string; age: number; } interface Employee extends Person { employeeId: number; } const employee: Employee = { name: "John Doe", age: 30, employeeId: 1<a href='https://sangseek.com/sangseeks/234/ko'>234</a>5 }; ``` 위의 예제에서 `Employee` 인터페이스는 `Person` 인터페이스를 확장하여 `employeeId` 속성을 추가했습니다. 2. 클래스 확장 타입스크립트에서는 클래스도 확장할 수 있습니다. 클래스는 다른 클래스를 상속받아 기존 클래스의 속성과 메서드를 재사용할 수 있습니다. ```typescript class Person { constructor(public name: string, public age: number) {} } class Employee extends Person { constructor(name: string, age: number, public employeeId: number) { <a href='https://sangseek.com/sangseeks/super/ko'>super</a>(name, age); } } const employee = new Employee("Jane Doe", 28, 67890); ``` 여기서 `Employee` 클래스는 `Person` 클래스를 확장하여 `name`과 `age` 속성을 상속받고, 추가적으로 `employeeId` 속성을 정의합니다. 3. 타입 별칭 확장 타입 별칭(type alias)도 확장할 수 있습니다. 그러나 타입 별칭은 인터페이스와 달리 직접적으로 확장할 수는 없지만, <a href='https://sangseek.com/sangseeks/교차 타입/ko'>교차 타입</a>을 사용하여 유사한 효과를 얻을 수 있습니다. ```typescript type Person = { name: string; age: number; }; type Employee = Person & { employeeId: number; }; const employee: Employee = { name: "Alice", age: 25, employeeId: 54321 }; ``` 위의 예제에서 `Employee` 타입은 `Person` 타입과 `employeeId` 속성을 교차하여 새로운 타입을 생성합니다. 4. 제네릭을 통한 확장 타입스크립트의 제네릭을 사용하면 타입을 동적으로 확장할 수 있습니다. 제네릭을 사용하면 다양한 타입에 대해 재사용 가능한 컴포넌트를 만들 수 있습니다. ```typescript interface Person { name: string; age: number; } function createEmployee<T extends Person>(person: T, employeeId: number) { return { ...person, employeeId }; } const employee = createEmployee({ name: "Bob", age: 35 }, 98765); ``` 여기서 `createEmployee` 함수는 `Person`을 확장하는 제네릭 타입 `T`를 사용하여 다양한 형태의 객체를 생성할 수 있습니다. 5. 믹스인 패턴 타입스크립트에서는 믹스인(mixin) 패턴을 사용하여 여러 클래스의 기능을 조합할 수 있습니다. 믹스인은 여러 클래스의 속성과 메서드를 결합하여 새로운 클래스를 생성하는 방법입니다. ```typescript function EmployeeMixin<T extends new (...args: any[]) => {}>(Base: T) { return class extends Base { employeeId: number; constructor(...args: any[]) { super(...args); this.employeeId = Math.floor(Math.random() * 10000); } }; } class Person { constructor(public name: string, public age: number) {} } const MixedEmployee = EmployeeMixin(Person); const employee = new MixedEmployee("Charlie", 40); console.log(employee.employeeId); // <a href='https://sangseek.com/sangseeks/랜덤/ko'>랜덤</a>한 employeeId 출력 ``` 위의 예제에서 `EmployeeMixin` 함수는 `Person` 클래스를 확장하여 `employeeId` 속성을 추가하는 새로운 클래스를 생성합니다. 결론 타입스크립트에서 타입을 확장하는 방법은 다양하며, 이를 통해 코드의 재사용성과 가독성을 높일 수 있습니다. 인터페이스, 클래스, 타입 별칭, 제네릭, 믹스인 패턴 등 여러 방법을 적절히 활용하여 필요한 타입 구조를 설계할 수 있습니다. 이러한 기능을 통해 타입스크립트는 더욱 강력하고 유연한 타입 시스템을 제공합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기