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

310
Visualizações
How to expect and pass in enum as a component property?

I created a Vue 3 app using TypeScript. Inside the src folder I created a new enum color.ts

enum Color {
    Red,
    Blue
}

export default Color;

I created a component ColorDisplay.vue

<template>
  <div>
    {{ color }}
  </div>
</template>

<script lang="ts">
import { defineComponent } from "vue";
import Color from "../color";

export default defineComponent({
  props: {
      color: {
          type: Color,
          required: true
      }
  }
});
</script>

and modified the Home.vue file to

<template>
  <div>
    <color-display :color="Color.Red" />
    <color-display :color="Color.Blue" />
  </div>
</template>

<script lang="ts">
import { defineComponent } from "vue";
import ColorDisplay from "../components/ColorDisplay.vue";
import Color from "../color";

export default defineComponent({
  components: {
    'color-display': ColorDisplay,
  }
});
</script>

Unfortunately several problems come up:

  • In Home.vue the imported Color is unused although I'm trying to use it in the template
  • In ColorDisplay.vue the enum seems to be an invalid prop type

enter image description here

Would someone mind telling me how to create an enum, expect it as a component property and pass it to components?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Component prop type value is restricted to builtin constructors and custom classes. TS enums are not classes but objects with specific types and can't be used as is with type.

It likely should be:

  color: {
      type: Number as PropType<Color>,
      required: true
  }
about 4 years ago · Juan Pablo Isaza Relatório

0

Try annotating the properties with a PropType. Object as PropType

Here the VueJS 3 Documentation for Annotating Properties: https://v3.vuejs.org/guide/typescript-support.html#annotating-return-types

about 4 years ago · Juan Pablo Isaza 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