관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

타입 심화 10 - Index Signature 본문

웹 · 앱 개발/타입스크립트

타입 심화 10 - Index Signature

huenuri 2024. 12. 27. 18:50

1주 차 과정의 마지막 이론 수업이다. 얼마나 힘이 들었는지 모른다. 하지만 아직도 공부할 게 정말 많고 이제 겨우 첫 발을 내딘 것이다.


 

 

 

 

이론 7 - Index Signature

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

인덱스 시그니처는 똑같은 것을 선언할 수 없다.

 

 

 

 


 

 

 

 

퀴즈 9 - Index signature

 

 

 

 

이 문제도 역시 틀렸다.

 

먼저, Headers 타입을 정의해보자. 이때, index signature를 사용해서 key와 value의 타입을 정해준다. Headers타입을 정의할 때, key의 타입은 string이고, value의 타입도 string이다.

그래서 Headers 타입을 다음과 같이 정의할 수 있다.

type Headers = {
  [field: string]: string;
};

 

 

아니면, Record 타입을 사용해서 다음과 같이 정의할 수도 있다.

type Headers = Record<string, string>;

 

 

 

 

다시 풀기

 


 

 

 

 

 

실습 8 - Index signature

 

 

 

 

 

이처럼 동시에 두 가지 타입을 선언할 수 없다. 인덱스 시그니처는 객체의 프로퍼티를 일일이 나열해야 하거나 객체의 프로퍼티를 알기 힘든 경우에 사용하면 좋다.


 

 

 

문제 풀기

 

1. 인덱스 시그니처 사용

 


 

 

 

 

2. 레코드 사용

 

 

 

두 가지 버전으로 모두 잘 실행되는 것을 볼 수 있다.


 

 

 

 

학습을 마치고

이번 단원은 정말 하기 힘들었다. 중간에 공부를 중단했다가 그래도 끝까지 해야 할 것 같아 다시 시작해 보았다. 오늘은 공부가 무척이나 하기 싫은 날이다. 하지만 재미있는 날보다는 그냥 하는 날이 더 많을 것이다.

아직 남은 공부가 많이 남아있고 시간은 한정되어 있다. 남들보다 늦게 시작한 만큼 내가 할 수 있는 만큼 최선을 다해야 할 것이다.

 

하기 싫은 웹 개발과 인공지능 공부를 마치고 나면 이제 내가 좋아하는 것도 해볼 수 있으니 조금만 더 힘을 내볼 것이다. 이 공부가 끝나면 1년 3개월이나 하지 못했던 그림 그리기를 다시 시작해보고 싶다. 요즘 그림이 너무나도 그리고 싶다.