TS がこれについて苦情を言っている理由:
TypeScript エラー メッセージ:
ただし、@param と @return を使用して @type を変更すると、正常に動作します。 リーリー ###私はなぜなのか理解していない。このドキュメントでは、これら 2 つのシグネチャがジェネリック型とどのように異なる相互作用を行うかについては言及されていません。
@param
@return
@type
中括弧に限定された型の範囲を参照するには、@type タグを使用します。つまり、スコープ外で X を参照しているため、@type {function(X): X} はジェネリック型を参照しません。少なくともそれが私の解釈です。いずれにせよ、@type から提供された型を抽出することはサポートされていません。
@type {function(X): X}
ただし、@typedef を使用して関数をオーバーライドできます。
@typedef
中括弧に限定された型の範囲を参照するには、
@type
タグを使用します。つまり、スコープ外で X を参照しているため、@type {function(X): X}
はジェネリック型を参照しません。少なくともそれが私の解釈です。いずれにせよ、@type
から提供された型を抽出することはサポートされていません。ただし、
リーリー@typedef
を使用して関数をオーバーライドできます。