Anker PowerPort III 3-Port 65W Pod (USB PD 充電器 USB-A & USB-C 3ポート)【独自技術Anker GaN II採用 / PD対応 / PPS規格対応 / PSE技術基準適合 / 折りたたみ式プラグ】MacBook PD対応Windows PC iPad iPhone Galaxy Android スマートフォン ノートPC 各種 その他機器対応(ブラック)
¥5,990 (2025年4月30日 13:13 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)
久しぶりに記事を書きます。最近インプットが多すぎて記事を書けなくなってきてしまっているので、インプットをちゃんと供養しないと…。
今回は、Nuxt で TypeScript を利用する際に tsconfig.json の設定によく迷いがちなので、改めて整理しようかなと思いこの記事を書くことにしました。
まず、Nuxt で TypeScript を利用するにはまず vue-tsc
のインストールが必要です。
また、 nuxt.config.ts
には、最低限下記の設定があるといいでしょう。
nuxt.config.ts
export default defineNuxtConfig({
typescript: {
typeCheck: true,
},
})
実は、Nuxt では自前のtsconfig.jsonを用意しなくても、
を実行すると、.nuxt/tsconfig.json
を自動で出力してくれます。
また、Nuxt の AutoImport 機能によって、定義されているコンポーネントの型の定義などもパースしてよしなに .nuxt/tsconfig.json
に出力してくれます。
Nuxt が生成した tsconfig.json だけを利用する問題点と解決法
自動で出力された、.nuxt/tsconfig.json
を利用すれば、型チェックもできて嬉しい!と手放しで喜ぶには少し早いです。
いくつか .nuxt/tsconfig.json
ベースでの開発には大きな問題点があります。
VSCodeがデフォルトで、.nuxt/tsconfig.json
を読み込まない
まあまあ大きな問題点です。
これを解決するために、Nuxt は、以下の方法をお勧めしているようです。
プロジェクトルートに以下のように、
tsconfig.json
{
"extends": "./.nuxt/tsconfig.json"
}
tsconfig.json
を定義します。
こうすれば、Nuxt が自動生成した型の恩恵を受けつつ、VSCodeの恩恵も受けられます。
Nuxt が生成した、tsconfig.json と プロジェクトルートの tsconfig.json が共存する際の注意点
例えば、以下のようにディレクトリが構成されていたとします。
.
├── app/
│ ├── types/
│ │ └── nuxtSchema.d.ts
│ └── main.vue
├── node_modules
├── .nuxt
│ └── tsconfig.json
├── package.json
├── package-lock.json
├── tsconfig.json
└── nuxt.config.ts
この場合、app/types/nuxtSchema.d.ts
に定義されているファイルは、nuxt/schema
の型を以下のように、書き換えたいファイルだとします。
nuxtSchema.d.ts
declare module 'nuxt/schema' {
interface PublicRuntimeConfig {
ENV: 'development' | 'production'
}
}
export {}
もちろん、プロジェクトルートの tsconfig.json
では、定義されているディレクトリの子に存在する、このファイルを自動で読み取ることができます。しかし、 .nuxt/tsconfig.json
はどうでしょうか。
皆さんなんとなく察しがつくかもしれませんが、
いくら nuxt prepare
コマンドを実行しても *.d.ts
ファイルは自動で読み取れません。
もし、declare を *.d.ts
ファイルで、利用したい場合は、 nuxt.config.ts
において追加で下記のように設定する必要があります。
nuxt.config.ts
export default defineNuxtConfig({
typescript: {
typeCheck: true,
tsConfig: {
include: ['../app/types/*.d.ts'],
},
},
})
※ tsconfig.json をカスタマイズする際も同様で、nuxt.config.ts との整合性をとる必要があります。
エラーの再現をコメントに追記しました。
今回は、Nuxt で TypeScript を利用する際の tsconfig 設定をする際の注意点と解決方法について詳しく説明しました。少し手間はかかりますが、Nuxt の AutoImport 機能はかなり強力なため、正しい設定を方法を学んで、快適な開発ライフを送ってみてください。
Views: 2