Reactjs 如何固定绑定元素';邮政';隐式具有';任何';类型.ts(7031)

Reactjs 如何固定绑定元素';邮政';隐式具有';任何';类型.ts(7031),reactjs,typescript,gatsby,Reactjs,Typescript,Gatsby,我得到以下错误:绑定元素'post'隐式地具有'any'类型。ts(7031) 当我在映射帖子时: 此组件取自设置博客组件的指南。我已经把它改编成打字稿了。但我对React和打字都很陌生。一切都按预期进行只是我不确定如何使这行代码“typescript友好”。我尝试在.map中为post添加类型声明,但它会引发更多错误 .map(({ node: post }) => { blog.tsx type BlogProps = { data?: any; }; const BlogPa

我得到以下错误:绑定元素'post'隐式地具有'any'类型。ts(7031) 当我在映射帖子时:

此组件取自设置博客组件的指南。我已经把它改编成打字稿了。但我对React和打字都很陌生。一切都按预期进行只是我不确定如何使这行代码“typescript友好”。我尝试在.map中为post添加类型声明,但它会引发更多错误

.map(({ node: post }) => {
blog.tsx

type BlogProps = {
  data?: any;
};

const BlogPage: React.FC<BlogProps> = (props) => {
  const { edges: posts } = props.data.allMarkdownRemark;
  return (
    <Layout>
      <Seo title="Blog" />
      <div className="blog-posts container">
        {posts
          .filter((post: any) => post.node.frontmatter.title.length > 0)
          .map(({ node: post }) => {
            return (
              <div className="blog-post-preview" key={post.id}>
                <h1>
                  <Link to={post.frontmatter.path}>
                    {post.frontmatter.title}
                  </Link>
                </h1>
                <h2>{post.frontmatter.date}</h2>
                <p>{post.excerpt}</p>
              </div>
            );
          })}
      </div>
    </Layout>
  );
};
这是我的graphql查询:

export const pageQuery = graphql`
  query IndexQuery {
    allMarkdownRemark(sort: { order: DESC, fields: [frontmatter___date] }) {
      edges {
        node {
          excerpt(pruneLength: 250)
          id
          frontmatter {
            title
            date(formatString: "MMMM DD, YYYY")
            path
          }
        }
      }
    }
  }
`;


通过为
数据
属性指定定义良好的类型。例如:
data:{allmarkdown备注:{edges:Array}}
您需要弄清楚
节点应该是什么。我不知道你在用什么。我最终在一个界面中定义了节点-为问题添加了代码
export const pageQuery = graphql`
  query IndexQuery {
    allMarkdownRemark(sort: { order: DESC, fields: [frontmatter___date] }) {
      edges {
        node {
          excerpt(pruneLength: 250)
          id
          frontmatter {
            title
            date(formatString: "MMMM DD, YYYY")
            path
          }
        }
      }
    }
  }
`;