API 응답 데이터의 타입은 어떻게 설정하나?
=> graphql 같은 경우 graphql-codegen을 이용해 명령어 하나로 만들어서 사용한다!
yml 파일은 package.json 같은 설정 파일이다.
package.json은 {}가 중요한 파일 이었지만, yml파일은 아래와 같이 {}가 없기때문에 들여쓰기가 중요한 파일이다.
schema에는 graphql url 주소(백엔드 주소)를 넣어주시면 됩니다.(app.js의 uri 주소와 동일하게)
이후에 명령어로 codegen을 실행시키시면 스키마의 주소로 들어가 api들의 타입을 쭉 다운받아오는데, 다운받은 타입을 generates의 type.ts로 들어가게 됩니다.
type.ts의 파일위치는 보기 편하게 바꾸셔도 무방합니다.
plugin 에는 typescript만 남기고 지워주세요
백엔드가 켜져있는 상태에서만 다운로드가 가능하다.
interface IProfile {
name: string;
age: number;
school: string;
hobby?: string;
}
type aaa = Partial<IProfile>;
type bbb = Required<IProfile>;
type ccc = Pick<IProfile, "name" | "age">;
type ddd = Omit<IProfile,"school">
type eee = "철수" | "영희" | "훈이" // Union 타입
let child : eee;
child = "철수"
type fff = Record<eee, IProfile> // Record 타입
가장 큰 차이 : 선언병합
interface IProfile {
candy: number; //선언 병합으로 추가됨
}
let profile: Partial<IProfile> = {
candy : 10,
};
interface는 가능하지만 type은 불가