TypeScript

[TypeScript] Type과 Interface

누구세연 2023. 11. 1. 22:25

사용자 정의 형식을 만들기 위한 도구 Type과 Interface에 대해 알아보겠습니다.

 

Type

새로운 타입을 정의할 때 사용됩니다.

기존에 존재하는 타입들을 조합하거나 별칭을 지어주는 데 사용할 수 있습니다.

 

string, null, number에 대한 타입을 정의할 수 있습니다.

오직 male 또는 female 중 하나의 값만 가질 수 있도록 문자열 리터럴 유니온 타입으로도 정의가 가능합니다.

 

이렇게 지정한 타입은 아래처럼 사용할 수 있습니다.

지정해 둔 string 값이 아니면 오류가 나타나는 것도 확인할 수 있습니다.

 

object도 type을 쓰면 선언할 수 있습니다.

예를 들어 idoltype을 정의해 보겠습니다.

object타입에 string과 number가 존재하도록 선언해 줄 수 있습니다.

정의한 객체 중에 optional 하게 값을 주고 싶을 때는 아래와 같이 물음표를 변수 옆에 붙여줍니다.

그럼 optinal 하게 정의된 year에 데이터를 입력하지 않아도 에러가 발생하지 않습니다.

 

 

Interface

또 다른 객체를 나타내는 데 사용됩니다.

객체의 구조를 정의하고 해당 구조를 따르는 객체를 만들 때 사용할 수 있습니다.

Interface는 object처럼 선언해 주면 사용할 수 있습니다.

 

그리고 인터페이스를 선언하는데 위에서 직접 만든 타입을 활용해서 만들 수 있습니다.

 

Interface도 optional 하게 객체를 선언할 수 있습니다.

type을 정의할 때와 마찬가지로 변수 이름 옆에 물음표를 붙여주면 됩니다.

 

 

Type과 Interface 차이점

Type Interface
기존 타입에 별칭을 부여할 때 사용되며 새로운 타입을 정의 새로운 타입을 만드는 것이 아니라 객체의 구조를 정의
유니온, 인터섹션, 튜플 등의 타입을 다양하게 조작하고 조합할 수 있음 제한
보통 유니온 타입, 튜플, 리터럴 타입 등을 정의할 때 주로 사용 주로 객체 형태를 정의하는 데 사용
확장은 불가능하지만 유니온 등의 조합으로 타입을 만들 수 있음. 상속이 가능하여 확장이 용이

 

사용 목적에 따라 type과 interface를 적절하게 선택하여 사용하는 것이 좋습니다.