for preventing 'accidentally omitting types when updating codes' use fragment like below
const ExpenseScalars = gql`
fragment ExpenseScalars on Expense {
id
createdWhen
category
content
tag
amount
quantity
}
`
export const ExpensesGQL = 'Expenses'
const EXPENSES_QUERY = gql`
query ${ExpensesGQL}($id: ID, $alias: String, $start: String, $end: String){
expenses(
pogyowonInfo: {
id: $id
alias: $alias
}
date: {
start: $start
end: $end
}
){
...ExpenseScalars
}
}
${ExpenseScalars}
`
so the Scalar fragment is always up-to-date with Schema on backend