40 lines
1.4 KiB
JSON
40 lines
1.4 KiB
JSON
{
|
|
"compilerOptions": {
|
|
"module": "ESNext",
|
|
"moduleResolution": "Node",
|
|
"resolveJsonModule": true,
|
|
"useDefineForClassFields": true,
|
|
|
|
// Required in Vue projects
|
|
"jsx": "preserve",
|
|
|
|
// `"noImplicitThis": true` is part of `strict`
|
|
// Added again here in case some users decide to disable `strict`.
|
|
// This enables stricter inference for data properties on `this`.
|
|
"noImplicitThis": true,
|
|
"strict": true,
|
|
|
|
// Required in Vite
|
|
"isolatedModules": true,
|
|
// For `<script setup>`
|
|
// See <https://devblogs.microsoft.com/typescript/announcing-typescript-4-5-beta/#preserve-value-imports>
|
|
"preserveValueImports": true,
|
|
// Enforce using `import type` instead of `import` for types
|
|
"importsNotUsedAsValues": "error",
|
|
|
|
// A few notes:
|
|
// - Vue 3 supports ES2016+
|
|
// - For Vite, the actual compilation target is determined by the
|
|
// `build.target` option in the Vite config.
|
|
// So don't change the `target` field here. It has to be
|
|
// at least `ES2020` for dynamic `import()`s and `import.meta` to work correctly.
|
|
// - If you are not using Vite, feel free to override the `target` field.
|
|
"target": "ESNext",
|
|
|
|
// Recommended
|
|
"esModuleInterop": true,
|
|
"forceConsistentCasingInFileNames": true,
|
|
// See <https://github.com/vuejs/vue-cli/pull/5688>
|
|
"skipLibCheck": true,
|
|
}
|
|
}
|