0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Next.js でWebアプリケーションを開発しよう~!と意気込んだのはいいものの、Next.js をインストールして、それを VS Code で開くだけで、このエラーが出てしまいました。

エラーの内容

'Image' cannot be used as a JSX component. Its return type 'ReactNode' is not a valid JSX element.ts(2786)

↓スクショ

image.png

↓Problem view のログも見てみるとエラー出てる

image.png

自分が実装したコードならエラーが起きることも想定できますが、インストールしただけでエラーになると困りますよね。

結論

結論としては、自分の場合は、VS Code の設定が問題でエラーが出ているだけでした。

以下のように、VS Code が使用する Typescript のバージョンを、workspace のバージョン、つまり package.json と npm install によってインストールされた、ローカルな typescript バージョンを使うようにすればエラーが解消されました。

image.png

補足

状況を箇条書きで整理すると:

  • いつも通り npx create-next-app@latest . しただけ。
  • その後 VS code でファイルを開くと、このエラー。
  • エラー文面の解釈としては、Next.js に含まれる Image コンポーネントが JSX の中では使えないよ、なぜなら ReactNode は JSX としてただしくないから。
  • npm run buildnpm start はなんの問題もなく実行できたので、false alert だとわかった。
    • なので、無視すればOK
    • けど、気持ち悪い(ただの潔癖)
    • もしくは、Image コンポーネントを使わないようにする(画像がないサイトって素敵ですよね!)

試した解消法(無駄足)

  • VS Code を再起動
    • VS Code で時々問題あると、再起動することで治ること結構ありますが、これでは解消せず
  • 古い Next.js バージョンを明示的に利用
    • package.json を書き換えて、14.x のバージョンの中の一番古いものを使ってみましたが解消せず(Reactのバージョンアップなどで、breaking changes があったのかなーと思い)
    • 比較的新しい app router などの next の機能を使いたかったので、13 以前には戻れなかった

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?