타입스크립트의 타입과 인터페이스는 언제 쓸까 (스테픈 2km완료)
타입스크립트를 공부하다보니
타입과 인터페이스를 적절히 사용하여 쓰고있는데
이번에 제네릭에 대해서 수업을 들어보며 타입과 인터페이스가
명확하게 언제 어떻게 쓰는게 좋을지 깊게 고민해본적은 없는것 같다.
한번 정리하고 들어가야할듯해서 적어본다.
객체의 구조를 정의할 때: 인터페이스는 객체의 속성과 메서드를 정의할때 사용합니다.
이런형태로 객체를 정의하거나 메서드도 정의가 가능한데요
클래스와 함께 사용할 때:
인터페이스는 클래스의 타입을 정의하는 데 유용하고
클래스가 특정 인터페이스를 구현하도록 강제할 수 있어 매우 유용합니다.
확장 가능:
인터페이스는 다른 인터페이스를 확장할 수 있어 재사용하기 좋죠
매우 유용하게 사용했습니다.
Merging 가능:
이렇게 세팅하면 덮어쓰기가 아니라 합쳐집니다.
그럼 타입은 언제쓰느냐
- 다양한 타입을 정의:
단순 객체 구조를 넘어, 유니언(Union), 인터섹션(Intersection), 튜플(Tuple) 등의 타입을 정의할 때 유용합니다.
유니언 타입은 여러 타입 중 하나일 수 있는 값을 정의할 때 사용됩니다.
파이프(|) 연산자를 사용하여 여러 타입을 나열합니다.
변수나 함수 매개변수가 여러 타입을 가질 수 있을 때 주로 사용합니다
인터섹션 타입은 여러 타입을 결합하여 모든 타입의 특성을 모두 가지는 새로운 타입을 정의할 때 사용됩니다. 앰퍼샌드(&) 연산자를 사용합니다
위 사진처럼 말이죠..
통으로 전부 선언해서 만들어도 되지만
이렇게 타입을 여러가지 만들어서 결합시켜도 됩니다.
튜플 타입은 배열의 길이와 각 요소의 타입이 고정된 배열을 정의할 때 사용됩니다.
각 요소의 타입을 명시하여 선언합니다.
배열의 각 위치에 특정 타입이 요구되는 경우 사용하면 유용합니다
- 유형별 구분이 필요할 때 주로 사용합니다
유니언 타입과 같은 복합 타입을 정의할 때 사용됩니다.
이런식으로도 복잡하게 활용이 가능합니다.
- 인터페이스로 정의할 수 없는 복잡한 타입을 정의할 때:
제네릭을 활용해서 타입을 지정해야하는 경우 많이 사용됩니다.
아무튼 정리하자면
- 객체의 형태를 정의하고 클래스 구현을 지원해야 할 때: 인터페이스를 사용합니다.
- 보다 복잡하고 다양한 타입 조합이 필요할 때: 타입을 사용합니다.
- 보강이 필요할 때: 인터페이스를 사용합니다.
- 유니언 타입과 같은 복합 타입이 필요할 때: 타입을 사용합니다.
대략 이정도이겠네요
한번 정리를 해뒀으니 좀 낫군요
스테픈 2km완료