11/11 API로 받는 데이터에 타입적용하기,유틸리티타입

김하은·2022년 11월 11일
0

배열이나 객체는 앞서 말했다시피 타입을 하나하나 적용하는것이 성가시다.
API는 객체로 받아오고 하는데, 여기저기서 사용되고 필요한 것도 달라 이것을 다 적어주어야하는지에 의문이 든다.rest-API의 경우에는 곳곳에서 필요할때마다 선언해서 써야한다.그러니까 필요할때마다 타입을 지정해 넣어줘야한다는 말이다.
그러나 그래프ql의 경우는 다르다.
codegen이라는 도구를 이용해 벡엔드에서 지정해준 그래프큐엘에 작성된 타입을 그대로 불러와 import하여 사용할 수 있다.
이젠 어느정도 import 와 export 에 익숙해진듯하다.

일단 codegen이라는 도구를 깔아야한다.
관련사이트에 다운명령이 있다. 다운을 다 받았다면 설정파일을 만들어주어야 하는데, codegen이라는 이름의 yaml(=yml(야믈파일))이라는 확장자명으로 만들고 그 안에 벡엔드에서 받아오는 그래프ql의주소를 넣어주는 등의 설정을 해주면 되는데 , 이때 부모와 자식간을 중괄호로 나누지 않고 탭키로 나누니 지우거나 하지 말아야한다.

그리고 package.json에 실행명령을 generate라고 설정해주고(==>관련홈페이지에서 지정한것.)
yarn generate를 하면 지정한 주소에서 해당타입들을담은 파일을 자동으로 받아와 넣어준다.

뭐가 잘못되었는지 코드하나가빠졌다는 둥 오류가 나서 수업을 진행할 수가 없었다. 급하게 맨토님께 문의를 드리고 나니 점심시간이 어느새 끝나있었다...
다행히 멘토님의 도움을 받아 다시 설치를 했고 드디어 성공!!

설치로 애를 먹고 이번에는 실제로 그래프큐엘의 주소로 받아온 타입을 적용해보았다.

그전에 유틸리티 타입에대해 배워보았다.

유틸리티타입?
간단히 말해 기존의 타입이 있을때 내 마음대로 원하는 타입을 조작해 사용하는 것.

유틸리티타입 종류:
Pick type: 기존타입에서 골라서 새로운 타입을 만든다.
type a = Pick<기존타입명,"뽑은것">
Omit type: 제외할것을 골라 만듬.
Partial type: 부분이라는 뜻이 있는 만큼, 있어도 되고 없어도되는, 있을경우의 타입을 정해줘 앞에 물음표가 붙음.
type b = Partial<기존타입명> ==>기존타입의 전부에 앞에 물음표가붙는다.
Required type: 전부 포함되어야한다. 이 경우 기존타입에 ? 가붙어도 사라진형태로 모든경우가 사용된다.
type c = Required<기존타입명>
Record type: 이 타입을 알기위해서는 유니온 타입을 알아야한다.
유니온타입: type f = "철수"|"유리"|"짱구 ==> 그러면 fff는 선언해준 철수, 유리,짱구만 들어갈 수 있다. string이라는 타입이 아니고 이중에서만 들어갈수 있는 즉, |(또는 이라는 의미)으로 나누어져들어가 그것들을 타입으로하는 것이다.
그렇다면 Record type은?? ==>
type d = <f,기존타입> ==>이렇게사용하는데, 유니온타입이 키가되고 기존타입이 value가 되어 매칭되는 타입을 의미한다.

이렇게 정리하다보니 더 햇갈리는 것 같다..특히나 Record타입의 경우는 더욱 그렇다.
아, 하나더,

type 과 interface 두가지 다 타입선언시 사용된다.
둘의 차이: 선언병합.
말그대로 선언한 것을 합칠 수 있다.
type으로 선언한것은 같은 이름으로 또 선언하면 에러가 난다.
그러나!
interface를 사용한다면 이미 만들었던 이름으로 또 선언이 가능하며 이 경우, 같은 이름으로 선언된 애들은 합쳐진다.

점점 뭔가 어려워고 복잡해진다.
특히 알고리즘은 무슨말인지 몇번이고 영상을 돌려보고,.... 오늘도 멘토님께 여쭤봤더니 그저 많이 해봐야한단다...... 수업은 어떻게든 따라는 가는것같은데.. 너무 걱정되는 날이었다.

0개의 댓글