バージョン
name | version |
---|---|
next | 14.2.4 |
next-auth | 4.24.5 |
事象
- VSCode上で「'SessionProvider' は値を参照していますが、ここでは型として使用されています。'typeof SessionProvider' を意図していましたか?」とエラーが出る
- 画面上では「Failed to compile Unterminated regexp literal」とコンパイルエラーとなる
- 当該ファイルはsrc/lib/NextAuthProvider.tsとして保存
当該コード
'use client'
import { SessionProvider } from 'next-auth/react'
import { ReactNode } from 'react'
const NextAuthProvider = ({ children }: { children: ReactNode }) => {
return <SessionProvider>{children} </SessionProvider>
}
export default NextAuthProvider
原因
ファイル名が.tsとなっていたため。
対応
NextAuthProvider.tsxとして保存する
.tsxと.tsファイルの違い
- .tsxファイルは、TypeScriptでJSX構文を使用するためのファイル形式です。Reactコンポーネントを定義するときや、JSXを含むコードを扱う場合には、この拡張子を使います。
- .tsファイルは、通常のTypeScriptコード用の拡張子です。このファイル形式では、JSX構文はデフォルトではサポートされていません。
今回はJSX構文を使用しているためtsxでないとだめだったということです。
初歩的なことで躓いてしまいました…