NextJS TypeScript getStaticProps 输入

时间:2021-01-31 02:04:55

标签: typescript next.js

我刚刚开始学习 NextJS 和 TypeScript,通过关注关于 Data FetchinggetStaticProps 函数类型的 NextJS 官方文档。在他们的示例中,他们使用这种方法根据 Posts 组件 props 的类型获取建议:

export const getStaticProps = async () => {
  // ... fetching the posts (returns an array) ...
    
  return {
    props: {          
      posts
    }
  }
}

const Posts = ({ posts }: InferGetStaticPropsType<typeof getStaticProps>) => { 
   // ... posts type is inferred ...
}

我不明白他们正在做的是推断帖子道具的类型(在这种情况下是一组单独的帖子),但在阅读他们建议的做法之前,我想出了我的方法:

interface Post {
  // ... created a Post interface ...
}

interface Props {
  posts: Post[]
}

const Posts: React.FC<Props> = ({ posts }) => {
  // ... TS still knows what posts should have (its an array) ...
}

我知道这两种方法是不同的,它们是根据请求的返回值推断道具的类型,但我的问题是:为什么我会推断道具的类型,我不应该总是期望它返回特定类型的值?我通过使用他们的方法得到了这一点,我对我收到的价值类型更加灵活,但像我这样的方法不是更安全和清晰吗?

(提前致谢)正如我告诉你的,我正在开始使用 Next 和 TypeScript,我不知道这是唯一的 - Next 方法还是 TypeScript 实践,请告诉我如果您在这些技术中比我更有经验。

0 个答案:

没有答案