[TS] 11. 타입 앨리어스(type aliases)를 알아보자!

신연우·2023년 3월 17일
0

TS

목록 보기
12/12

타입 앨리어스(type aliases)를 알아보자!

형태가 비슷한 두개의 객체가 있습니다.

const user1 = {
name: "김개발",
age: 28
}

const user2 = {
name: "이개발",
age: 25
}

여기서 객체의 타입을 지정해 주고 싶다면

const user1:{name:string; age:number;} = {
name: "김개발",
age: 28
}

const user2:{name:string; age:number;} = {
name: "이개발",
age: 25
}
// BAD

이렇게 해주면 되지만 객체가 추가될 때마다 매번
타입을 지정해주기가 번거롭습니다.

이럴 땐 type aliases 를 통해 쓸 데 없이 길어진 코드를 줄이고 가시성을 높여줄 수 있습니다.

type Person = {
    name: string;
    age: number;
}

const user1:Person = {
name: "김개발",
age: 28
}

const user2:Person = {
name: "이개발",
age: 25
}
// NICE!

UnionType에 타입 앨리어스 주기

type studentId = number | null;
let id:studentId = null;

응용해서 교차타입에 적용해보자

type Person = {
    name: string;
    age: number;
}

const user1:{name:string; age:number;} = {
name: "김개발",
age: 28
}

const user2:{name:string; age:number;} = {
name: "이개발",
age: 25
}

type studentId = number | null;

type Student = {
    name: string;
    age: number;
    id: number | null;
}
// BAD

Student 는 Person과 중복되고 id 부분은 StudentId와 동일하니

type Person = {
    name: string;
    age: number;
}

const user1:{name:string; age:number;} = {
name: "김개발",
age: 28
}

const user2:{name:string; age:number;} = {
name: "이개발",
age: 25
}

type studentId = number | null;

type Student = Person & {
     id: studentId
}
// Nice

Tuple 타입 같은 경우엔

type TupleType = [number, string];
const tuple1:TupleType = [10, "hello"];
const tuple2:TupleType = [20, "hi"]

타입앨리어스의 핵심 😊

  • 반복되는 타입 정의를 정리를 해놓음으로써
    가독성도 좋아지고 중복되는 부분도 없어진다

  • union타입이나 교차타입등을 사용해서 타입끼리도 응용해서 사용가능하다!

profile
야금야금 똑똑해지자

0개의 댓글