Vue: Properti data tidak ditemukan dan / atau salah ketik di TypeScript 3.6.2

Dibuat pada 30 Agu 2019  ·  4Komentar  ·  Sumber: vuejs/vue

Versi: kapan

2.6.10

Tautan reproduksi

https://jsfiddle.net/keegan_openbay/nhvemx32/ (perhatikan bahwa JSFiddle tidak menampilkan kesalahan compiler TypeScript)

Langkah-langkah untuk mereproduksi

  • gunakan TypeScript> = 3.6.1-beta (saat ini stabil di 3.6.2)
  • memiliki setidaknya satu penyangga
  • ketik semua metode Anda dengan benar
  • gunakan properti non-string data dalam opsi komponen Anda

Apa yang diharapkan?

Perilaku normal; properti data diketik dengan benar dan ditemukan pada instance.

Apa yang sebenarnya terjadi?

Kesalahan muncul karena:

  • di methods , properti data tidak ditemukan pada tipe komponen.
  • di watch , properti data diketik string | WatchOptionsWithHandler<any> | WatchHandler<any> .
  • di computed , properti data diketik (() => 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

Komentar yang paling membantu

Saya telah mengajukannya ke repo TypeScript.
https://github.com/microsoft/TypeScript/issues/33164

Semua 4 komentar

Ini memang tidak berfungsi lagi saat berada di 3.5.3. Tidak yakin apakah itu masalah upstream atau bukan tetapi ada yang rusak pada tipe kami

Saya hanya memeriksanya. Masih belum yakin apakah itu bug upstream atau bukan. Tetapi menganotasi data this bisa menjadi solusi:

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

Saya telah mengajukannya ke repo TypeScript.
https://github.com/microsoft/TypeScript/issues/33164

TypeScript v3.6.3 telah dirilis dan menyelesaikan masalah ini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat