Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

211
Views
Errores de pelusa de Vue para la función defineEmits

Tengo un problema con la pelusa de mi Vue SPA. Estoy usando la función defineEmits del azúcar sintáctico de configuración del script ( https://v3.vuejs.org/api/sfc-script-setup.html ). Los errores simplemente no tienen ningún sentido, ¿alguien sabe cómo solucionar esto (sin deshabilitar estas reglas para los archivos afectados, porque sucede con cada uso de defineEmits). Lo raro es que la función defineProps funciona sin errores, que sigue la misma sintaxis. ¿Puede alguien ayudarme aquí?

Mi linter se queja de estos errores:

 22:14 error Unexpected space between function name and paren no-spaced-func 22:27 error Unexpected whitespace between function name and paren func-call-spacing 23:3 error 'e' is defined but never used no-unused-vars 23:27 error 'value' is defined but never used no-unused-vars

Código que genera estos errores (defineEmits es la fuente de todos los errores:

 <script lang="ts" setup> const emit = defineEmits<{ (e: 'update:modelValue', value: string): void }>() defineProps<{ modelValue: string name: string items: string[] }>() const onInput = (e: Event) => { emit('update:modelValue', (e.target as HTMLInputElement).value) } </script>

Mi archivo linting eslintrs.js (las reglas compartidas importadas no modifican las reglas de las que se queja eslint):

 const path = require('path') const prettierSharedConfig = require(path.join(__dirname, '../prettier-shared-config.json')) module.exports = { settings: { 'import/resolver': { typescript: {}, node: { extensions: ['.js', '.ts', '.vue'], }, }, }, env: { browser: true, es2021: true, 'vue/setup-compiler-macros': true, }, extends: ['plugin:vue/essential', 'airbnb-base'], parserOptions: { ecmaVersion: 13, parser: '@typescript-eslint/parser', sourceType: 'module', }, plugins: ['vue', '@typescript-eslint'], rules: { ...prettierSharedConfig.rules.shared, 'vue/multi-word-component-names': 'off', 'vue/no-multiple-template-root': 'off', }, }

Actualizar:

Investigué un poco más y vi que esto sucedía:

 type EmitsType = { (e: 'update:modelValue', value: string): void } const emit = defineEmits<EmitsType>()

Con la siguiente salida de pelusa:

 23:3 error 'e' is defined but never used no-unused-vars 23:27 error 'value' is defined but never used no-unused-vars

Parece que el linter no puede procesar adecuadamente estos tipos.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

No encontré una respuesta ideal, pero mi solución actual es usar una sintaxis de defineEmits diferente.

 defineEmits(['update:modelValue'])

La desventaja de esto es que no escribe el valor del parámetro de emisión, pero no pude encontrar otra forma de hacerlo funcionar.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!