Next.jsキ

https://nextjs.org/docs/app/getting-started/layouts-and-pages の Dynamic Segments 

フォルダを [slug] のように角括弧で囲むだけです:
                                                                                                        
 app/       
  blog/                                                                                                    
   page.tsx    → /blog
   [slug]/                                                                                                  
    page.tsx   → /blog/hvne7mr7ysx6 など

App Router (Next.js 15以降) ではそうです。以前は同期的に受け取れましたが、非同期になりました。                                                        
                                                                                                        
 // Next.js 15以降                                                                                               
 const { id } = await params // awaitが必要     

よって、paramsはPromiseカタ

。TypeScript で「この値は非同期で返ってくる」という型を表すときに Promise<> 
Promise<{ id: string }>                                                                                            
 // 「{ id: string } を返す Promise」という意味   


client.getListDetailある?
  getListDetail<Blog>(...)                                                                                           
 // → Promise<Blog & MicroCMSContentId & MicroCMSDate> が返ってくる  
  引数の型は { endpoint, contentId, queries } で固定です。 

Linkはhrefです!

await忘れず

 HTML エンティティがそのまま表示