Rodrigo
Rodrigo

Reputation: 391

Property 'slug' does not exist on type 'ParsedUrlQuery | undefined'

I am trying to get the path of my page on getServerSideProps, but the type of params is object

What I need to do to get as string?

export const getServerSideProps: GetServerSideProps = async (context) => {
  const { slug } = context.params // Property 'slug' does not exist on type 'ParsedUrlQuery | undefined'.ts(2339)

  return {
    props: {
    },
  }
}

Upvotes: 3

Views: 6122

Answers (2)

Marek Bareła
Marek Bareła

Reputation: 106

I think that you look for code that look like this

import { ParsedUrlQuery } from "querystring";

interface Params extends ParsedUrlQuery {
  slug: string;
}

export const getServerSideProps: GetServerSideProps = async (context) => {
  const { slug } = context.params as Params;

  return {
    props: {
    },
  }
}

Upvotes: 7

Mendel
Mendel

Reputation: 54

If you're looking for the path as a String, you can try context.req.url. (See the docs for the full list of context properties).

For the dynamic parameter, it depends on what you've named the page, for example if you have a Blog post page, with a pages/posts/[post].js file, the slug will be in context.params.post as opposed to context.params.slug.

Hope this is helpful!

Upvotes: 1

Related Questions