타입스크립트의 타입과 인터페이스는 언제 쓸까 (스테픈 2km완료)

in sct-kr •  3 days ago 

타입스크립트를 공부하다보니

타입과 인터페이스를 적절히 사용하여 쓰고있는데

이번에 제네릭에 대해서 수업을 들어보며 타입과 인터페이스가

명확하게 언제 어떻게 쓰는게 좋을지 깊게 고민해본적은 없는것 같다.

한번 정리하고 들어가야할듯해서 적어본다.

image.png

객체의 구조를 정의할 때: 인터페이스는 객체의 속성과 메서드를 정의할때 사용합니다.

image.png

이런형태로 객체를 정의하거나 메서드도 정의가 가능한데요

클래스와 함께 사용할 때:
인터페이스는 클래스의 타입을 정의하는 데 유용하고

image.png

image.png

클래스가 특정 인터페이스를 구현하도록 강제할 수 있어 매우 유용합니다.

확장 가능:

image.png

인터페이스는 다른 인터페이스를 확장할 수 있어 재사용하기 좋죠

매우 유용하게 사용했습니다.

Merging 가능:

image.png

이렇게 세팅하면 덮어쓰기가 아니라 합쳐집니다.

그럼 타입은 언제쓰느냐

image.png

  1. 다양한 타입을 정의:
    단순 객체 구조를 넘어, 유니언(Union), 인터섹션(Intersection), 튜플(Tuple) 등의 타입을 정의할 때 유용합니다.

image.png

유니언 타입은 여러 타입 중 하나일 수 있는 값을 정의할 때 사용됩니다.
파이프(|) 연산자를 사용하여 여러 타입을 나열합니다.

image.png
변수나 함수 매개변수가 여러 타입을 가질 수 있을 때 주로 사용합니다

image.png

인터섹션 타입은 여러 타입을 결합하여 모든 타입의 특성을 모두 가지는 새로운 타입을 정의할 때 사용됩니다. 앰퍼샌드(&) 연산자를 사용합니다

image.png

위 사진처럼 말이죠..

통으로 전부 선언해서 만들어도 되지만

이렇게 타입을 여러가지 만들어서 결합시켜도 됩니다.

image.png

튜플 타입은 배열의 길이와 각 요소의 타입이 고정된 배열을 정의할 때 사용됩니다.

각 요소의 타입을 명시하여 선언합니다.

image.png

배열의 각 위치에 특정 타입이 요구되는 경우 사용하면 유용합니다

  1. 유형별 구분이 필요할 때 주로 사용합니다
    유니언 타입과 같은 복합 타입을 정의할 때 사용됩니다.

image.png

이런식으로도 복잡하게 활용이 가능합니다.

  1. 인터페이스로 정의할 수 없는 복잡한 타입을 정의할 때:
    제네릭을 활용해서 타입을 지정해야하는 경우 많이 사용됩니다.

image.png

아무튼 정리하자면

  • 객체의 형태를 정의하고 클래스 구현을 지원해야 할 때: 인터페이스를 사용합니다.
  • 보다 복잡하고 다양한 타입 조합이 필요할 때: 타입을 사용합니다.
  • 보강이 필요할 때: 인터페이스를 사용합니다.
  • 유니언 타입과 같은 복합 타입이 필요할 때: 타입을 사용합니다.

대략 이정도이겠네요

한번 정리를 해뒀으니 좀 낫군요


스테픈 2km완료

image.png

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE BLURT!