타입과 인터페이스
type
과interface
는 타입스크립트에서 새로운 타입을 정의할 때 사용하는 가장 일반적인 키워드이다.type
은 타입스크립트의 타입에 이름을 지어주는 역할을 한다.interface
는 타입보다 훨씬 나중에 생겼다.
타입 예제
type StringType = string; // StringType 이라는 타입 선언을 하고 string 타입과 동일하게 설정할 수 있다.
type Sex = "male" | "female"; // n가지 중 하나를 선택하는 타입을 정의할 수도 있다.
type Person = {
// 객체 형태의 타입을 정의할 수도 있다.
name: string;
age: number;
};
타입을 통한 추상화 전후 살펴보기
me1
과me2
의 타입 형태는 결국 같은데,type
을 정의하는 것과 아닌 것의 가독성 차이가 심하다.
const me1: {
name: string;
age: number;
} = {
name: "jake",
age: 10,
};
const me2: Person = {
name: "jake",
age: 10,
};
인터페이스 예제
- 인터페이스는
=
기호를 사용하지 않는다.
interface PersonInterface {
name: string;
age: number;
}
const me3: PersonInterface = {
name: "Jake Seo",
age: 30,
};
타입이나 인터페이스를 내부적으로 재참조하기
- 기존에 타입으로 정의한 것이나 인터페이스로 정의한 것을 내부적으로 계속 재참조 할 수 있다.
- 재참조를 통해 타입 코드가 장황해지지 않고 적절하게 추상화 될 수 있도록 관리할 수 있다.
interface Members {
people: PersonInterface[];
groupName: StringType;
}
타입과 인터페이스의 가장 큰 차이
interface
는 선언 시 무조건 객체 형태이기 때문에type
처럼 JS 의 primitive 타입을 나열할 수는 없다.
반응형
'Typescript' 카테고리의 다른 글
TS005. 타입스크립트의 타입 추론 (type inference) (0) | 2023.12.27 |
---|---|
TS004. 타입스크립트의 Enum 타입 간단하게 알아보기 (0) | 2023.12.27 |
TS002. 자바스크립트의 기본(Primitive) 타입과 타입스크립트에만 있는 타입 (0) | 2023.12.26 |
TS001. 자바스크립트 -> 타입스크립트 변경 시 이점 (0) | 2023.12.26 |
DefinitelyTyped 프로젝트와 @types/모듈 (0) | 2022.08.10 |