How to declare type of event parameter when listen for event
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Documentación
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- nuxtjs, typescript
- Área
- developer-experience, frontend
Línea de trabajo
Empieza por plugins/event-bus.ts y la llamada al listener de mitt mostrada en el issue; después, lee las declaraciones de TypeScript de mitt y la documentación pertinente. Determina si la tipificación del parámetro del evento indicada puede admitirse o documentarse para este uso. Se considera terminado cuando el enfoque compatible o la limitación estén registrados claramente y el error de tipos del ejemplo se haya corregido o explicado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hello,
I am using mitt 3.0.1 for my Nuxt app (nuxt 3.6.5). I use event-bus to emit/listen for the whole app:
File plugins/event-bus.ts
import mitt from 'mitt';
export default defineNuxtPlugin(() => {
const emitter = mitt();
return {
provide: {
event: emitter.emit, // Will emit an event
listen: emitter.on, // Will register a listener for an event
},
};
});
I am currently not able to declare event when I listen for event in my components. I have to use type "any" but this break out type safety rules.
$listen('component:display', (event: any) => {
// here the param I want to declare a specific type rather than type "any"
// like event: {id?: string; value?: string}
});
I already tried assigned a sepecific type but it throw error:
$listen('component:display', (event:{id?: string; value?: string}) => {
//
});
ERROR: No overload matches this call.
Overload 1 of 2, '(type: "*", handler: WildcardHandler<Record<EventType, unknown>>): void', gave the following error.
Overload 2 of 2, '(type: "component:display", handler: Handler<unknown>): void', gave the following error.ts(2769)
It's now allowed to use flag @ts-ignore in my app so I don't know how to solve this now.
I search on document but it seems no mention about this so I hope to receive any advice on this.
Thank you so much.
- Lenguaje dominante
- TypeScript
- Estrellas
- 11.9k
- Forks
- 490
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de developit/mitt
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 48/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 1/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
Todos los issues de developit/mitt
Issues similares
-
blocklist removal
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
MetaMask/eth-phishing-detect#296544 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
pastelsky/bundlephobia#1122 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
category/development priority/P2 scope/file-operations scope/testing type/enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Enatega Customer and Rider app: Add-ons price is not visible to customer after order is placed. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100