Как обеспечить соблюдение схемы GraphiQL, но обнулить поля, которые не существуют
Для обеспечения контекста у меня есть этот интерфейс Typescript
interface Features {
enabled: boolean;
limits?: Record<string, number>;
capabilities?: string;
}
В Gatsby я пытаюсь запросить API, но с выводом типа Гэтсби он не учитывает поля ограничений и возможностей, поскольку они, возможно, не определены.
Я пытаюсь использовать createSchemaCustomization для принудительного применения полей.
Ближайшее, что я получил, это
exports.createSchemaCustomization = ({ actions }) => {
const { createTypes } = actions;
const typedefs = `
interface Limits {
days: Int
}
interface Feature {
enabled: Boolean
limits: Limits
capabilities: String
}
type Performance implements TierFeature
`
createTypes(typeDefs)
}
, но возникают ошибки, поскольку я объявляю их интерфейсами, поэтому, насколько я понимаю, я говорю Гэтсби, что эти поля будут существовать.