TypeScript

Nuxt является полностью типизированным фреймворком и предлагает удобные способы получения точной информации о типах при написании кода.

Проверка типов

По умолчанию Nuxt не проверяет типы при запуске nuxt dev или nuxt build, из соображений производительности.

Чтобы включить проверку типов при сборке или в режиме разработки, установите vue-tsc и typescript как dev-зависимости:

npm install --save-dev vue-tsc typescript

Затем выполните команду nuxt typecheck, чтобы проверить типы:

Terminal
npx nuxt typecheck

Чтобы включить проверку типов во время сборки или разработки, вы также можете использовать опцию typescript.typeCheck в своём файле nuxt.config:

nuxt.config.ts
export default defineNuxtConfig({
  typescript: {
    typeCheck: true,
  },
})

Автоматически генерируемые типы

При запуске nuxt dev или nuxt build Nuxt генерирует следующие файлы для поддержки типов в IDE (и при проверке типов):

.nuxt/nuxt.d.ts

Этот файл содержит типы любых модулей, которые вы используете, а также ключевые типы, требуемые Nuxt. Ваша среда разработки должна автоматически распознавать эти типы.

Некоторые из ссылок в файле относятся к файлам, которые генерируются только внутри вашей директории buildDir (.nuxt), и поэтому для полной типизации вам потребуется запустить nuxt dev или nuxt build.

.nuxt/tsconfig.json

Этот файл содержит рекомендуемую базовую конфигурацию TypeScript для вашего проекта, включая используемые алиасы, внедренные Nuxt или модулями, которые вы используете, так что вы можете получить полную поддержку типов и автодополнение путей для алиасов, таких как ~/file или #build/file.

Используйте секцию imports в nuxt.config, чтобы подключать каталоги помимо стандартных. Это удобно для автоимпорта типов, которые вы используете по всему приложению.
Nuxt опирается на эту конфигурацию, а модули Nuxt тоже могут её расширять. Поэтому не рекомендуется править tsconfig.json напрямую — важные настройки могут затереться. Вместо этого расширяйте конфиг через nuxt.config.ts. Подробнее о расширении конфигурации.

Узнайте больше о том, как расширить эту конфигурацию.

Посмотрите видео от Дэниела Ро про встроенные алиасы Nuxt.
Nitro также автоматически создаёт типы для API-маршрутов. Плюс Nuxt генерирует типы для глобальных компонентов и автоимпорта из композаблов и другой основной функциональности.
Имейте в виду: все опции, унаследованные из ./.nuxt/tsconfig.json, будут перезаписаны опциями из вашего tsconfig.json. Перезапись вроде "compilerOptions.paths" своей конфигурацией приведёт к тому, что TypeScript не учтёт разрешение модулей из ./.nuxt/tsconfig.json, и перестанут распознаваться, например, модули #imports.

Если нужно расширить опции из ./.nuxt/tsconfig.json, используйте свойство alias в nuxt.config — Nuxt подхватит их и дополнит ./.nuxt/tsconfig.json.

Строгие проверки

TypeScript предоставляет определённые проверки, чтобы обеспечить большую безопасность и анализ вашей программы.

Строгие проверки в Nuxt включены по умолчанию при включённой опции typescript.typeCheck, чтобы повысить безопасность типов.

Если вы сейчас переводите кодовую базу на TypeScript, можно временно отключить строгие проверки, задав strict: false в nuxt.config:

nuxt.config.ts
export default defineNuxtConfig({
  typescript: {
    strict: false,
  },
})