Vue: TypeScript 3.6.2でデータプロパティが見つからないか、正しく入力されていない

作成日 2019年08月30日  ·  4コメント  ·  ソース: vuejs/vue

バージョン

2.6.10

複製リンク

https://jsfiddle.net/keegan_openbay/nhvemx32/(JSFiddleはTypeScriptコンパイラエラーを表示しないことに注意して

再現する手順

  • TypeScript> = 3.6.1-betaを使用します(現在3.6.2で安定しています)
  • 少なくとも1つの小道具を持っている
  • すべてのメソッドを正しく入力してください
  • コンポーネントオプションで文字列以外の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であった間は、実際にはもう機能していません。 それが上流の問題であるかどうかはわかりませんが、私たちのタイプで何かが壊れました

調べているところです。 それがアップストリームのバグであるかどうかはまだわかりません。 ただし、 datathis型に注釈を付けることは、回避策になる可能性があります。

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

TypeScriptリポジトリに提出しました。
https://github.com/microsoft/TypeScript/issues/33164

TypeScript v3.6.3がリリースされ、この問題が解決されました。

このページは役に立ちましたか?
0 / 5 - 0 評価