Open9

next.js 15へのマイグレーションまわりの警告がよくわからない

terrierscriptterrierscript
  • next.jsを14から15にする最、paramsが非同期になったりとか色々変更がある
  • TypeScriptで警告してくれると嬉しいが、共通した型定義が無い
  • 一方、build時などに警告が出る。
  • が、警告が出ないパターンとかある。謎
terrierscriptterrierscript
  • 同じファイルを
    • /[name]/[a]/layout.pageに配置すると -> 警告出る
    • /[name]/layout.pageに配置すると -> 警告出ない
terrierscriptterrierscript
type AppLayout<TParams = {}> = ((params: { children: React.ReactNode, params: Promise<TParams> }) => Promise<React.ReactNode>)

みたいな型をあててやるがこれでも
"Layout" is not a valid Layout export field
が出たりする

terrierscriptterrierscript

page.app.tsxみたいにpageExtensionsで拡張してても警告されない

terrierscriptterrierscript
type AppPage<T> = (props: { params: Promise<T> }) => Promise<React.ReactNode>

const Page: AppPage<{ name: string }> = async ({ params }) => {

こういうのなら大丈夫っぽい