Open9
next.js 15へのマイグレーションまわりの警告がよくわからない
- next.jsを14から15にする最、paramsが非同期になったりとか色々変更がある
- TypeScriptで警告してくれると嬉しいが、共通した型定義が無い
- 一方、build時などに警告が出る。
- が、警告が出ないパターンとかある。謎
- 同じファイルを
- /[name]/[a]/layout.pageに配置すると -> 警告出る
- /[name]/layout.pageに配置すると -> 警告出ない
type AppLayout<TParams = {}> = ((params: { children: React.ReactNode, params: Promise<TParams> }) => Promise<React.ReactNode>)
みたいな型をあててやるがこれでも
"Layout" is not a valid Layout export field
が出たりする
↑devだと出ない。buildすると警告出る
Layoutに何らか型付けすると怒られるのか?
これはexport const Layout
と不必要なexportをすると起きてる?
このへん
page.app.tsx
みたいにpageExtensionsで拡張してても警告されない
type AppPage<T> = (props: { params: Promise<T> }) => Promise<React.ReactNode>
const Page: AppPage<{ name: string }> = async ({ params }) => {
こういうのなら大丈夫っぽい