Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

279
Visualizações
Problemas con la etiqueta <script setup> de Vue 3.2 y los tipos de TypeScript

Estoy tratando de usar la etiqueta Vue 3.2 <script setup> con TypeScript.

Tengo un caso de uso simple en el que quiero mostrar una ID de usuario en la plantilla.

Mi código está técnicamente funcionando. Muestra la ID de usuario muy bien.

Pero hay dos cosas raras...

  1. He definido una propiedad de user con un tipo de User que importé del SDK de Firebase. Esto funciona, pero aparece un error en el tipo de User que dice: 'User' only refers to a type, but is being used as a value here. ts(2693) . ¿Por qué recibo este error y cómo solucionarlo?

  2. Los documentos de ayuda dicen que no necesito import { defineProps } from "vue"; . Pero si no realizo la importación, obtengo un 'defineProps' is not defined . Esto es confuso. ¿Por qué me veo obligado a importarlo cuando los documentos dicen lo contrario?

Aquí está mi código completo:

 <template> <div>Logged in as {{ user.uid }}</div> </template> <script setup lang="ts"> import { defineProps } from "vue"; //Docs say this is not needed, but it throws an error without it import { User } from "firebase/auth"; defineProps({ user: { type: User, //ERROR: 'User' only refers to a type, but is being used as a value here. ts(2693) required: true, }, }); </script>
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

en script setup , puede definir accesorios como este en su lugar:

 <template> <div>Logged in as {{ user.uid }}</div> </template> <script setup lang="ts"> import { defineProps } from "vue"; //Docs say this is not needed, but it throws an error without it import { User } from "firebase/auth"; defineProps<{ user: User }>(); </script>

otra solución es como sugirió @bassxzero, puede usar

 defineProps<{ user: { type: Object as PropType<User>; required: true } }>()

sin usar withDefaults , se requerirá automáticamente

también, sobre:

 import { defineProps } from "vue"; //Docs say this is not needed, but it throws an error without it

en realidad no necesita importarlo, pero debe definirlo dentro .eslitrc.js

 globals: { defineProps: 'readonly', defineEmits: 'readonly', defineExpose: 'readonly', withDefaults: 'readonly' }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda