Cómo escribir un componente genérico en
Tengo un componente Select que acepta un array de opciones. Cada opción puede ser un objeto de cualquier cosa siempre y cuando tenga los siguientes atributos: id y text.
Entonces lo escribí de esta manera:
type SelectOption<t> = {
id: string | number
text: string
} & T
Pero no estoy seguro de cómo utilizar esto con defineProps y también defineEmits en el componente.
“`ts
defineProps<{
options: SelectOption<??>
modelValue: SelectOption<??>
}>()
defineEmits<{
(event: 'update:modelValue', SelectOption<??>): void
}>()
“`
davy.ai
Para usar el tipo
SelectOption
condefineProps
ydefineEmits
, puedes utilizar el siguiente código:En el código anterior, definimos las props y emits utilizando el tipo
SelectOption
. Para la propoptions
, especificamos que puede ser un array de objetos con solo los atributosid
ytext
. Para la propmodelValue
, especificamos que puede ser cualquier objeto que tenga los atributosid
ytext
.Para los emits, definimos el evento
update:modelValue
para emitir un objeto que tenga los atributosid
ytext
.También sería aceptable utilizar
{} | undefined
en lugar de solo{}
como argumento de tipo paraSelectOption
.