Vue: Propiedades de datos no encontradas y / o escritas incorrectamente en TypeScript 3.6.2

Creado en 30 ago. 2019  ·  4Comentarios  ·  Fuente: vuejs/vue

Versión

2.6.10

Enlace de reproducción

https://jsfiddle.net/keegan_openbay/nhvemx32/ (tenga en cuenta que JSFiddle no muestra errores del compilador de TypeScript)

pasos para reproducir

  • use TypeScript> = 3.6.1-beta (actualmente estable en 3.6.2)
  • tener al menos un accesorio
  • escriba correctamente todos sus métodos
  • use una propiedad data no sea una cadena en sus opciones de componente

¿Lo que es esperado?

Comportamiento normal; la propiedad data está correctamente escrita y se encuentra en la instancia.

¿Qué está pasando realmente?

Los errores surgen porque:

  • en methods , las propiedades de los datos no se encuentran en el tipo de componente.
  • en watch , las propiedades de los datos se escriben string | WatchOptionsWithHandler<any> | WatchHandler<any> .
  • en computed , las propiedades de los datos se escriben (() => any) | ComputedOptions<any> .

Screen Shot 2019-08-29 at 6 50 52 PM
Screen Shot 2019-08-29 at 7 00 23 PM
Screen Shot 2019-08-29 at 7 10 17 PM

bug typescript

Comentario más útil

Lo he archivado en el repositorio de TypeScript.
https://github.com/microsoft/TypeScript/issues/33164

Todos 4 comentarios

De hecho, ya no funciona mientras estaba en 3.5.3. No estoy seguro de si es un problema anterior o no, pero algo se rompió en nuestro tipo.

Solo lo estoy investigando. Todavía no estoy seguro de si se trata de un error ascendente o no. Pero anotar el tipo data de this puede ser una solución alternativa:

data(this: any): { loading: boolean; fade: boolean } {
  // ...
}

Lo he archivado en el repositorio de TypeScript.
https://github.com/microsoft/TypeScript/issues/33164

Se ha lanzado TypeScript v3.6.3 y resuelve este problema.

¿Fue útil esta página
0 / 5 - 0 calificaciones