방명록
- [TypeScript] TypeScript 공부일지: 인터페이스 확장 [6/14 study]2024년 06월 14일 15시 22분 29초에 업로드 된 글입니다.작성자: 동혁이
TypeScript 공부일지: 인터페이스 확장
❗️주의
지극히 개인 공부한 내용을 올린 거기 때문에 이해하지 못할 수도 있음
❗️인터페이스 확장
/** * 인터페이스 확장 * 타입 별칭은 없고 인터페이스에만 있는 특별한 기능 - 인터페이스 확장 */ // name, age 프로퍼티가 4번중복 비효율적이고 메인 프로퍼티 바꾸면 서브 프로퍼티도 전부 바꿔줘야 함 // 이럴때 인터페이스 확장을 사용함 // 사용하는법 // 1. 서브 프로퍼티에서 Animal 프로퍼티와 중복된 프로퍼티를 제거 // 2. 중복되는 Animal 타입의 프로퍼티를 받아오면됨 // 2-1 Dog 라는 이름 옆에 extends 적고 그 옆에 Animal을 적으면 됨 (extends: 확장하다) // 이렇게 extends를 이용해서 다른 interace의 프로퍼티들을 자동으로 다 포함하게 해주는 문법을 // 확장이라 하고 다른 말로는 상속이라고 함 interface Animal { name: string; color: string; } interface Dog extends Animal { // 상속을 받는 interface에서 동일한 프로퍼티의 타입을 다시 정의 가능 하지만 다 되는건 아니고 // 규칙이 있음 - 원본 타입의 서브 타입이여야 함 ex 원본 string 서브 number => 오류발생 name: "돌돌이"; isBark: boolean; } // extends Animal 하고난 후 name, color가 잘 불러와짐 const dog: Dog = { name: "돌돌이", color: "", isBark: true, }; interface Cat extends Animal { name: "돌돌이" isScratch: boolean; } interface Chicken extends Animal { isFly: boolean; } // 다중 인터페이스 확장 // 동일한 프로퍼티의 타입을 다시 정의할 수 있다고 해서 이렇게 다중 인터페이스 확장할때는 // Dog, Cat의 프로퍼티가 다르면 오류 나옴 ex) 돌돌이에만 name 프로퍼티 따로 다시 정의하면 오류 interface DogCat extends Dog, Cat {} const dogcat: DogCat = { name: "돌돌이", color: "", isBark: true, isScratch: true, };
다음글이 없습니다.이전글이 없습니다.댓글