4

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函数,但如果您尝试这样做,打字稿可以理解地抛出以下错误,因为 undefined 不能分配给IGAtsbyImageData预期的getImage 打字稿错误

当涉及到更复杂的查询时,情况就更糟了,比如来自 markdownremark 插件的查询:每次都需要手动检查一个查询结果的所有子字段。有解决办法吗?

4

0 回答 0