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