🦾 타입 오퍼레이터
1. 유니언 타입
- 매개변수, 반환 값 모두 유니언 타입을 적용할 수 있다.
- 단, 어떤 타입이 올 지 확실하지 않기 때문에 특정 타입에만 사용 가능한 메서드를 호출하면 에러가 발생한다.
타입 가드
- 코드에서 값의 타입을 좁히거나 확실하게 추론할 수 있도록 도와주는 방법이다.
2. 인터렉션 타입
- 여러 개의 타입을 모두 만족하고 싶을 때 사용한다.
- 어떤 타입과 any와 결합하면 any로 평가된다.
- 어떤 타입과 never와 결합하면 never로 평가된다.
3. 함수 오버로드
- 함수의 타입이 여러 개 전달될 수 있을 때, 다양한 동작을 처리할 수 있도록 정밀하게 타입을 지정하는 방법
- 중간에 다른 코드가 끼어들면 안된다. (주석이나 빈 줄은 가능)
- 코드가 복잡해질 수 있으나 오버로드 시그니처를 보여주는 기능이 있어 어떤 타입을 넣었을 때 어떤 타입이 리턴되는지를 빠르게 알 수 있다.
- 함수 선언문으로만 가능하다. 함수 표현식이나 화살표 함수로는 불가능하다.
function combine(a: number, b: string): string;
function combine(a: string, b: number): string;
function combine(a: number, b: number): number;
function combine(a: string, b: string): string;
function combine(a: number | string, b: number | string): number | string {
if (typeof a === "number" && typeof b === "number") return a + b;
return `${a}${b}`;
}
4. 타입 추론 vs 타입 표명
타입 추론
- 타입스크립트 엔진이 기본적으로 수행하는 작업
- 변수에 할당되는 것을 보고 자동으로 타입을 추론하여 적용해주는 기능
- 초기화를 하지 않는 변수는 타입 추론이 불가능하기 때문에 any로 추론
- 함수 매개변수는 타입 추론 불가 (기본값 할당하면 가능)
- 타입 추론을 적극적으로 사용하면 깔끔한 코드를 작성할 수 있다.
let num1 = 10;
const num2 = 30;
타입 표명
5. 타입 별칭 (type alias)
- 나만의 타입 만들기
- 대문자로 시작하는 것이 규칙
- 타입 식별자와 변수 식별자는 이름이 같아도 따로 관리됨 (중복 OK)
type MyType = string | number | booleanl;
📌 출처
수코딩(https://www.sucoding.kr)