@types/react
パッケージを使用しようとしましたが、問題が発生しました。index.d.ts
Definitions by:
をindex.d.ts
)応答。#21146でReact.Fragment
の適切なタイプについていくつかの議論がありましたが、 symbol | number
はFragment
の内部Reactタイプを正確に反映している可能性がありますが、 React.Fragment
防ぎますTSX要素として使用されることから。
<React.Fragment> // error here: React.Fragment does not have any construct or call signatures
<div>Child 1</div>
<div>Child 2</div>
</React.Fragment>
<></>
構文を使用してフラグメントをレンダリングできることはわかっていますが、Reactのドキュメントには、これは単に<React.Fragment></React.Fragment>
糖分を減らし、フラグメントにキーを追加する唯一の方法であると記載されています。
したがって、 React.Fragment
のタイプをReact.ComponentType<{}>
に近いものに変更する必要があると思います。これにより、 key
とchildren
小道具が得られます。
人々がこの提案に同意すれば、私はPRを開くことができます。
これをキャッチしてくれてありがとう、@ jgoz!
React.Fragment
のタイプを変更してコンパイラの動作をハックするよりも、TypeScript側でこれを修正する方が良いアプローチかもしれないと思います。
これを調べて、それが最善のアプローチであるかどうかを確認します。
@uniqueiniquityいいですね。 TSで修正できない/実用的でない場合は、ブランチを準備できます。
@jgoz先に進み、PRを開きます。 ここでいくつか議論した後、当面は正しいアプローチを取っているようです。
最も参考になるコメント
@uniqueiniquityいいですね。 TSで修正できない/実用的でない場合は、ブランチを準備できます。