[Typescript] 타입별칭, 인덱스시그니쳐, enum

dolfin·2023년 6월 28일

TypeScript

목록 보기
6/7
post-thumbnail

해당 게시물은 인프런 한 입 크기로 잘라먹는 타입스크립트 수강 후 작성 하였습니다.

타입 별칭

const user {
id : number,
name : string

} = {

id : 1,
name : "jenny"

}

객체 타입 지정은 위 처럼 하는 것이라 배웠다. 하지만.. 너무 지저분 하쟈나..?
다른 user2 객체 있으면 복붙 해..?

등등의 고민이 생길때 타입 별칭이라는 것을 사용하면 된다.

type Users = {
id : number,
name : string
}

const user : Users = {
id : 1,
name : "jenny"
}

이렇게 적어주면 깔끔하게 타입 지정이 가능하다.
뒤에 나올 interface 에서는 타입이름 뒤에 = 을 안 써주기에 형태가 좀 헷갈리는 것을 주의 해야한다.

type 타임이름 = 타입 이다 ⭐️

또한 같은 스코프에서 같은 이름의 타입 별칭은 선언할 수 없다.

인덱스 시그니처

객체를 작성하다보면 간혹 아주주아주 많은 프로퍼티가 있는 경우들이 있다.


const nationalCode = {
 korea : "ko",
 untitedState : "us",
 japan : "ja",
  ...
  }

이럴때 좀 더 타입 지정을 쉽게 하는 방법이 있다. 인덱스 시그니처


type NationalCode = {
[key : string] : string;
}

const nationalCode: NationalCode = {
 korea : "ko",
 untitedState : "us",
 japan : "ja",
  ...
  }

key가 string 타입이고 value가 string 타입인 모든 프로퍼티를 포함 시켜준다.
이렇게 쓰면 굳이 일일이 타입을 명시할 필요가 없다.

Enum 열거형 타입

열거형은 여러개의 값을 나열하는 용도로 사용된다.

enum Role {
  ADMIN, // 0
  USER, //1
  GUEST, // 2
}
const user = {
 name : "jenny"
 role : Role.ADMIN // 0
}

위와 같이 사용이 가능하다. 상수처럼 값을 딱 지정해두니까 오타없이 필요한 값을 가져올 수 있다는 장점이 있다. 값을 따로 적어두지 않으면 명시적으로 0부터 차례대로 지정된다.

문자열도 가능하다.

enum Language {
  korean = "ko",
  english = "en",
}
const user1 = {
  name: "jenny",
  role: Role.ADMIN, // 0
  language: Language.korean,// "ko"
};

프로젝트시 오타나 실수를 방지하기 좋은 것 같다!

profile
no risk no fun

0개의 댓글