FYGS.dev - Homepagefygs.dev \_°<
CVFormationsProjetsBlogTechMastryContact
CV
Formations
Projets
Blog
TechMastry
Contact
fygs.dev \_°<

Plateforme d'apprentissage premium pour les développeurs modernes. Cours en JavaScript, TypeScript, React, Next.js, Node.js, IA et Cloud.

fygs.dev@gmail.com+33 6 44 80 85 30

Information

CVMon parcours professionnel
ProjetsPortfolio technique
BlogArticles & tutoriels
ContactEntrer en contact

Apprentissage

FormationsCours premium
FormulesFormules & abonnements
TechMastryPréparation aux entretiens
Tableau de bordEspace apprenant
CommunautéRejoindre la communauté

Projets Phares

Evopur

Services de nettoyage écologique pour les ménages à Montréal

NCR

Plateforme de processus administratifs

Quizzen

Plateforme de quiz alimentée par l'IA

A'Numerique

Un service innovant pour combler la fracture numérique

© 2025 Fernand Soualo. Tous droits réservés.

Conçu avec Next.js 15, Tailwind CSS & Shadcn UI❤️
Conditions d'utilisation•Politique de confidentialité•CV
Back to Community
ZapNext.js
Next.js 15 Full-Stack Development Masterclass

Erreur TypeScript avec Next.js 15 - Params Promise

TThomas Bernard
L1
•11/2/2025•edited

Bonjour !

Depuis la migration vers Next.js 15, j'ai des erreurs TypeScript avec les params des pages dynamiques.

Erreur

Type '{ id: string }' is missing the following properties from type 'Promise<any>': then, catch, finally

Code actuel

export default function Page({ params }: { params: { id: string } }) { return <div>Post ID: {params.id}</div> }

Comment je dois adapter mon code pour Next.js 15 ? J'ai lu quelque chose sur les params qui deviennent des Promises mais je ne comprends pas bien.

Merci ! 🤔

1 replies4 votes496 views

Replies (1)

Sort by:
OldestNewestBest
F
Fernand Soualo
Moderator
L5
3 days ago (edited)

Salut ! C'est effectivement un changement important dans Next.js 15.

Solution

Depuis Next.js 15, les params et searchParams sont des Promises. Voici comment adapter ton code :

export default async function Page({ params }: { params: Promise<{ id: string }> }) { const { id } = await params; return <div>Post ID: {id}</div> }

Pourquoi ce changement ?

Cela permet une meilleure optimisation des performances et prépare Next.js pour les futures fonctionnalités de streaming.

Pour generateMetadata aussi

export async function generateMetadata({ params }: { params: Promise<{ id: string }> }) { const { id } = await params; return { title: `Post ${id}` }; }

J'ai prévu de faire une vidéo sur ce sujet dans la formation Next.js ! 📹