Skill — Vue TSC Dashboard
Overview
Este skill governa o contrato estático do workspace src/dashboard-ui, usando vue-tsc como
ferramenta de typecheck oficial de Single File Components (SFCs) Vue.
O Vite dev server é transpilation-only e não valida tipos. O typecheck real é feito por
vue-tsc --noEmit.
O script canônico é:
npm run typecheck:dashboard
When To Use
- Modificar componentes
.vue(Options API, Composition API,<script setup>) - Adicionar ou alterar stores Pinia
- Tipar props, emits ou slots de componentes Vue
- Corrigir erros reportados por
vue-tsc - Configurar ou atualizar
src/dashboard-ui/tsconfig.json - Tipar
vite.config.js,tailwind.config.jsoupostcss.config.js
When Not To Use
- O task envolve apenas o runtime Node.js (
src/**fora do dashboard) → usetyping-node24-esm-tsserver - O task envolve apenas JSDoc em arquivos
.jsdo servidor → usejsdoc-authoring - O task envolve criação/manutenção de lanes strict → use
strict-lane-governance
Inputs / Preconditions
vue-tsce@vue/tsconfigdevem estar instalados no workspacesrc/dashboard-uisrc/dashboard-ui/tsconfig.jsondeve existir comstrict: true- Componentes
.vuedevem usar<script setup lang="ts">ou<script lang="ts">quando o typecheck exigir tipagem não-inferível
Workflow
- Verificar instalação:
npm --workspace src/dashboard-ui list vue-tsc. - Rodar
npm run typecheck:dashboardpara ver o estado atual dos erros. - Para SFCs com erros em
thiscaindo emany(Options API):- Migrar para
<script setup lang="ts">com Composition API, ou - Adicionar
defineComponentcom interface de retorno explícita.
- Migrar para
- Para props sem tipo:
<script setup lang="ts"> const props = defineProps<{ title: string; count: number }>(); </script> - Para emits sem tipo:
const emit = defineEmits<{ update: [value: string]; close: [] }>(); - Para stores Pinia com estado genérico:
const useUiStore = defineStore('ui', () => { const count = ref<number>(0); return { count }; }); - Para configs de raiz do dashboard (
vite.config.js, etc.):- Adicionar
// @ts-check+import { defineConfig } from 'vite'. tailwind.config.js:/** @type {import('tailwindcss').Config} */antes do export.postcss.config.js:/** @type {Record<string, object>} */antes do export.
- Adicionar
- Rodar
npm run typecheck:dashboardnovamente e verificar zero erros.
Guardrails
- Não reescrever Options API para Composition API apenas por estética — somente quando o typecheck exigir.
- Não usar
@ts-ignoreem SFCs; preferir// @ts-expect-errorcom comentário explicativo. - Props e emits devem ter tipos reais, não
anyouunknowndesnecessário. - Manter
verbatimModuleSyntax: truenotsconfig.jsondo dashboard. - Não introduzir dependências TypeScript no dashboard além de
vue-tsce@vue/tsconfig.
Validation / Done Criteria
-
npm run typecheck:dashboardexecutavue-tsc --noEmitsem erros. - Props e emits de componentes públicos têm tipos explícitos não-
any. -
src/dashboard-ui/vite.config.jstem// @ts-checke usadefineConfig. -
npm --workspace src/dashboard-ui run buildcontinua verde. -
npm run jsdoc:coverage:jsonfecha commissing_param = 0,unsafe_generic = 0.
Related Skills
../typing-node24-esm-tsserver/SKILL.md../strict-lane-governance/SKILL.md../jsdoc-authoring/SKILL.md- TYPING_FULLSTRICT_ROADMAP.md
Source: Ilenburg1993/chatgpt-docker-puppeteer — distributed by TomeVault.