2016-10-22 5 views
3

で「ライブラリ定義の矛盾した使用は」非常に明確であるが、今私はこのような何か持っている:奇妙なエラーメッセージflowjs

src/framework/uitable/show.js:0 
inconsistent use of library definitions 
46: columns: Array<UiTableConfigColumnType> 
         ^^^^^^^^^^^^^^^^^^^^^^^ object type. This type is incompatible with. See lib: src/framework/uitable/uitable.js.flow:46 
52: type UiTableDataColsType = Array<string>; 
             ^^^^^^ string. See lib: src/framework/uitable/uitable.js.flow:52 

src/framework/uitable/show.js:0 
inconsistent use of library definitions 
52: type UiTableDataColsType = Array<string>; 
             ^^^^^^ string. This type is incompatible with. See lib: src/framework/uitable/uitable.js.flow:52 
46: columns: Array<UiTableConfigColumnType> 
         ^^^^^^^^^^^^^^^^^^^^^^^ object type. See lib: src/framework/uitable/uitable.js.flow:46 

をし、持っています何を探したらいいのか分からない。

定義内の型がOKであるように見える、彼らは0

行目に互いにソースポイントに関連していない私は前にこのエラーを見たことがないと私は追跡上の任意の助けを期待していませんこのエラーの実際の原因

私はinconsistent use of library definitionsは何を意味しているだけで、エラー自体が何を意味するのか理解するのにいくつかの助けを必要とする理由ライン0

答えて

10

でエラーsrc/framework/uitable/show.js:0を報告flowjs?タイプABを入力して流れる時

ほとんどのフローエラーが発生します。たとえば、タイプがBのパラメータが必要ですが、タイプがAのものを渡す関数を呼び出すとします。この場合、FlowはタイプAがタイプBとどのように互換性がないかに関するエラーを出力します。

時には、あなたがこの場合

// in file foo.js 
libraryCallB(libraryCallA()); 

のようなコードを持っている、多分libraryCallA()の戻り値の型はlibraryCallB()のパラメータの型と一致していません。したがって、Flowは型が互換性がないというエラーを出します。ただし、両方のライブラリ呼び出しがライブラリ(たとえばlib.js)で定義されているため、エラーメッセージにはfoo.jsはまったく含まれません。これは理想的ではありません。バグが入っている可能性があります。foo.js:0

だから、バンダイとして、ヒントとしてエラーの先頭にfoo.js:0を付けるだけです。これは、互換性のないライブラリタイプに流入しているライブラリタイプが1つ見つかったときに、foo.jsをタイプチェックしていたことを意味します。

私たちはエラーメッセージを改善しようとしています。そのため、これらのエラーはあまり一般的ではありません。しかし、彼らはまだ起こる。

コードはどうですか?

  • エラーがflow check --traces 10を試してみてくださいsrc/framework/uitable/show.js
  • のどこかにありそうであることは、通常のflow checkを実行しますが、ソートの流れの内部の型チェックロジックのスタックトレースのようなもので、これらの「痕跡」を、保存します。 10は、深さ10までの印字トレースを意味します。Flowの内部に精通していない限り、出力はわかりにくいですが、エラーを引き起こす場所はsrc/framework/uitable/show.jsに記載されています。
  • 私は、エラーがArray<UiTableConfigColumnType>、またはその逆として使用されてArray<string>に関係している推測しています。
+0

ありがとうございました。 'flow check --trace 10 'を使うと、実際の問題を解決することができました。これは実際には改善が必要なことだと思うので、私はこのエラーを再現し、別の問題https://github.com/facebook/flow/issues/2673。 – doberkofler

関連する問題