열거형
열거형에 대한 기본적인 설명은 생략합니다.
SDL 스펙에서는 아래처럼 열거형을 선언할 수 있지만,
값은 리졸브되지 않는다는 점에 유의해야 하며,
구현체마다 리졸브 방식이 다릅니다.
아래는 이메일 열거형 타입을
타입스크립트로 구현한 예제입니다.
let MailType = new GraphQLEnumType({
name: "MAIL",
values: {
NAVER: { value: "@naver.com" },
GOOGLE: { value: "@gmail.com" },
DAUM: { value: "@daum.net" }
}
});
열거형 타입은 GraphQLObject를 요구하는 장소에 사용될 수 있습니다.
아래는 매개변수로 사용된 예제입니다.
let query = new GraphQLObjectType({
name: "enumTestQuery",
fields: {
test: {
type: GraphQLString,
args: {
mailType: {
type: MailType
}
},
resolve: (parent, args) => {
/**
* 열거형도 다른 변수와 똑같다.
* args[ARG_NAME]에 순수 값이 들어있다.
*/
let mailType: string = args.mailType;
return mailType;
}
}
}
});
열거형 변수라고해서 특별한 것이 아닙니다.
리졸브된 값이 args 변수에 들어갑니다.
mailType은 각 타입들의 리졸브 값은 문자열이므로,
쿼리의 리졸브 함수에서 열거형 변수를 string에 담은것을 알 수 있습니다.
쿼리에서는 열거형의 구체적인 이름으로 접근할 수 있습니다.
'# GraphQL > GraphQL.js' 카테고리의 다른 글
타입스크립트 GraphQL Cursor Based Pagination (0) | 2019.12.16 |
---|---|
타입스크립트 GraphQL Scalar Type 클래스 (1) | 2019.12.15 |
타입스크립트 GraphQL 재귀호출 recursion (0) | 2019.12.15 |
타입스크립트 GraphQL Resolve Parameter 정보 (0) | 2019.12.15 |
타입스크립트 GraphQL Input Object Type 클래스 (0) | 2019.12.14 |