타입스크립트를 사용하는 프론트앤드 개발자라면 반드시 사용하게되는 type과 interface !
둘의 차이를 알고 적재적소에 사용한다면 안정적이고, 유지보수가 용이한 높은 품질의 코드를 작성할 수 있게 될 것이다
interface
'객체' 의 구조를 정의하는데 사용된다. 클래스기반의 코드를 작성하는데 주로 사용되며 병합이 가능해 확장 가능성이 있는 타입을 정의할 때 용이하다. 객체의 타입만 정의 가능.
interface의 자동 병합 예시로는
interface Family {
mother: string;
father: string;
}
interface Family {
daughter: string;
son :string;
}
이렇게 Family 인터페이스를 두 번 정의할 경우
첫번째 내용에 두번째 내용이 덧씌워지거나 오류가 발생하지 않고,
interface Family{
mother:string;
father:string;
daughter:string;
son:string
}
이렇게 하나로 병합된다는 특징을 가지고 있다.
type
객체 뿐만 아니라 모든 요소의 타입 정의가 가능하다. 유니온 타입이나, 컴포넌트의 props, state, 이벤트 등의 타입도 정의가 가능해서 React 환경 개발에서는 type을 주로 사용한다.
**유니온 타입 : 여러 타입 중 하나를 선택하는 것
type Info = { phoneNum : string | number; } //유니온 타입 예시
interface와 type은 확장 방식도 다르다.
//interface의 경우
interface Member {
name:string;
age: number
}
interface Student extends Member {
stuId:number;
major:string;
}
//type 의 경우
type Member = {
name:string;
age: number
}
Type Teacher = Member & {
tcId:number;
major:string;
}
}
'react js' 카테고리의 다른 글
tailwind vs css in js(styled,emotion) 무슨 차이가 있을까? (0) | 2024.11.07 |
---|---|
React 개발자들이 커스텀 훅Custom Hook 을 사용해야 하는 이유 (0) | 2024.10.11 |
Next.js : 요즘 회사들의 프레임워크 (SSG,SSR,ISR) (2) | 2024.09.24 |
React Query와 Axios로 비즈니스 로직을 최적화 하는 방법 (feat. 성능최적화, 데이터 처리) (4) | 2024.09.11 |
프론트엔드 코드 최적화: 코드 스플리팅이 뭘까 (feat.SEO, React18) (2) | 2024.09.02 |