
해당 게시물은 인프런 한 입 크기로 잘라먹는 타입스크립트 수강 후 작성 하였습니다.
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 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"
};
프로젝트시 오타나 실수를 방지하기 좋은 것 같다!