Vue: Свойства данных не найдены и / или неправильно введены в TypeScript 3.6.2

Созданный на 30 авг. 2019  ·  4Комментарии  ·  Источник: vuejs/vue

Версия

2.6.10

Ссылка для воспроизведения

https://jsfiddle.net/keegan_openbay/nhvemx32/ (имейте в виду, что JSFiddle не показывает ошибки компилятора TypeScript)

Действия по воспроизведению

  • используйте TypeScript> = 3.6.1-beta (в настоящее время стабильный на версии 3.6.2)
  • иметь хотя бы одну опору
  • правильно введите все свои методы
  • используйте data свойство

Что ожидается?

Нормальное поведение; свойство data правильно набрано и обнаружено в экземпляре.

Что на самом деле происходит?

Ошибки возникают из-за:

  • в methods свойства данных не найдены в типе компонента.
  • в watch свойства данных набираются string | WatchOptionsWithHandler<any> | WatchHandler<any> .
  • в computed свойства данных набираются (() => 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

Самый полезный комментарий

Я подал его в репозиторий TypeScript.
https://github.com/microsoft/TypeScript/issues/33164

Все 4 Комментарий

Он действительно больше не работает, пока был на 3.5.3. Не уверен, что это проблема апстрима или нет, но что-то сломалось в наших типах

Я просто изучаю это. По-прежнему не уверен, ошибка ли это в апстриме. Но аннотирование data this может быть обходным путем:

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

Я подал его в репозиторий TypeScript.
https://github.com/microsoft/TypeScript/issues/33164

Выпущен TypeScript v3.6.3, который решает эту проблему.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги