Vue: Propriétés des données introuvables et / ou mal saisies dans TypeScript 3.6.2

Créé le 30 août 2019  ·  4Commentaires  ·  Source: vuejs/vue

Version

2.6.10

Lien de reproduction

https://jsfiddle.net/keegan_openbay/nhvemx32/ (sachez que JSFiddle n'affiche pas les erreurs du compilateur TypeScript)

Étapes à suivre pour reproduire

  • utilisez TypeScript> = 3.6.1-beta (actuellement stable à 3.6.2)
  • avoir au moins un accessoire
  • tapez correctement toutes vos méthodes
  • utilisez une propriété non-chaîne data dans vos options de composant

Qu'attend-on?

Comportement normal; la propriété data est correctement tapée et trouvée sur l'instance.

Que se passe-t-il réellement?

Les erreurs surviennent parce que:

  • dans methods , les propriétés des données ne sont pas trouvées sur le type de composant.
  • dans watch , les propriétés des données sont tapées string | WatchOptionsWithHandler<any> | WatchHandler<any> .
  • dans computed , les propriétés des données sont tapées (() => 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

Commentaire le plus utile

Je l'ai déposé sur le référentiel TypeScript.
https://github.com/microsoft/TypeScript/issues/33164

Tous les 4 commentaires

Cela ne fonctionne en effet plus tant qu'il était sur 3.5.3. Je ne sais pas si c'est un problème en amont ou non, mais quelque chose s'est cassé dans nos types

Je suis juste en train de l'examiner. Je ne sais toujours pas s'il s'agit d'un bogue en amont ou non. Mais annoter le type data de this peut être une solution de contournement:

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

Je l'ai déposé sur le référentiel TypeScript.
https://github.com/microsoft/TypeScript/issues/33164

TypeScript v3.6.3 a été publié et résout ce problème.

Cette page vous a été utile?
0 / 5 - 0 notes