问题描述
我正在使用 gatsby-plugin-ts
为我的 graphql 页面查询生成类型。
我遇到的问题是生成的所有类型都为所有字段返回 T | undefined
类型,因此在任何组件中使用它们之前,我需要检查所有查询子字段,否则编译器会抛出错误。>
以gatsby-plugin-image
为例。给定一个查询:
export const query = graphql`
query IndexPage {
banner: file(relativePath: { eq: "banner.jpg" }) {
childImageSharp {
gatsbyImageData(width: 1920)
}
}
}
`;
结果 data.banner
应该传递给 getimage
函数,但如果您尝试这样做,typescript 可以理解地抛出以下错误,因为 undefined 不能分配给 IGAtsbyImageData
预期的 getimage
{1}}
当涉及到更复杂的查询时,情况更糟,比如来自 markdownremark 插件的查询:每次都需要手动检查一个查询结果的所有子字段。有没有办法解决这个问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)