[ TypeScript ] Type Alias

한대희·2023년 5월 27일
0

TypeScript

목록 보기
6/13
post-thumbnail

타입 별칭 ( Type Alias )

  • 타입 별칭을 이용하면 아래와 같이 변수를 선언하듯 타입을 정의할 수 있다.
  • type 타입이름 = 타입지정 의 방식으로 타입을 지정 한다.
  • 🔥 주의할 점은 동일한 스코프에 동일한 이름의 타입 별칭을 선언하는 것은 불가능 하다.
type User = {
  id: number;
  name: string;
  nickname: string;
};

const user: User = {
  id: 1,
  name: 'hdh',
  nickname: 'heedae'
}

Index Signature

  • 그런데 만약에 해당 타입에 프로퍼티가 수백개라고 가정해 보면, 이걸 전부 입력을 해줘야 되기 때문에 너무 불편할 것이라는 생각이 든다.
  • 이것을 어느 정도 해결해 줄 수 있는 것이 Index Signature 라는 문법이다.
  • 프로퍼티의 key는 [ key: 타입지정 ] 이렇게, value는 그냥 타입을 지정 하면 된다.
  • 완벽한 해결이 아닌 어느 정도 해결의 의미는 해당 타입에 지정된 프로퍼티의 형식이 모두 같아야 하기 때문이다.
  • 예를 들어 한 class에 있는 학생의 이름과, 나이가 입력되어 있는 Class라는 타입이 있다고 가정해 보자
  • Class라는 타입에는 key는 학생의 이름이고, value는 나이 이므로 모든 프로퍼티가 key는 string, value는 number다. 따라서 프로퍼티의 형식이 모두 같기 때문에 Index Signature를 사용할 수 있다.
// 🔥 아래 처럼 한 class의 학생들을 전부 입력을 해줘야 되는데 학생이 백명이면 백번을 입력을 해줘야 한다.
type Class = {
  hdh : number;
  james : number;
  bread : number;
};

let myClass: Class = {
  hdh : 30,
  james : 31,
  bread : 29,
};

// 😀 Class라는 타입에 속해 있는 프로퍼티의 key는 모두 string, value는 number라고 지정 했다.
type Class = {
	[ key: string ] : number
}

// 😀 따라서 위의 형식만 맞으면 프로퍼티를 계속 해서 추가할 수 있다.
let myClass: Class = {
  hdh : 30,
  james : 31,
  bread : 29,
  sam : 39
};
profile
개발 블로그

0개의 댓글