まず、私はTypeScriptに慣れています。フローは多くの点でTSに非常に似ていますが、最近アスタリスク(*)のタイプに遭遇しました。最初は「any」の同義語だと思っていましたが、Flowのリリースノートをいくつか読んだ後、そうではないことがわかりました。私はすべての公式ドキュメントをざっと見て、「*」の使用法を見つけることができませんでした。
それで、それは何で、いつ使用するのですか?しかし、TypeScriptのそれと直接同等のものは何でしょうか。
編集:私が最初にこの回答を書いて以来、私はそのことを学びました*
は、モジュールの境界にある場合は安全ではありません。私はそれを使用することをお勧めできません、そしてそれは将来削除されるかもしれません。
明示的に書き出すのではなく、型パラメーターを推測するようにFlowに指示するだけです。
function foo(): Array<*> {
return [5];
}
// Flow issues an error:
// 2: return [5];
// ^ number. This type is incompatible with
// 10: (foo(): Array<string>);
// ^ string
(foo(): Array<string>);
( フローを試行 )
これはany
とは異なります-any
は安全でない型なので、*
with any
この例では、Flowはエラーを表示しません。これをnumber
に置き換えると、Flowで同様のエラーが発生します。
アスタリスク*
in Flowは、タイプを推測するように指示します。これは、すでに Nat Mote によって回答されています
さらに、TypeScriptにはアスタリスクに直接相当するものがないため、型を推測するように指示することはできません。ただし、フローと同様に、一部の特定のケースではタイプを自動的に推測します。 TypeScript Type Inference Documentation 、 Type Inference Examples
チェックアウト unique features
このページ: FlowとTypeScriptの違い
コメントを投稿するには評判が足りません。
TypeScript 2.8の更新:
だからあなたはT<*>
(フロー)TypeScriptであるT<infer U>
。 TypeScriptは初めてです。間違っていた場合は修正してください。