タイプガードは、すべての可能な値に総称を展開しますか?問題を再現するための簡単なコードスニペットを次に示します。「foo」[]になります|その後「バー」[]。test2では、arrを状態の実際の値型に手動でキャストし、戻り値の型は正しいです。タイプガードが未定義を除外した後、ジェネリック型Tが失われたようです。この動作は予想されますか?ます。あなたの場合、これは正確に間違っているではありません。...それはあなたが望むほど特定ではありません。コンパイラはあなたのためにこれをしません...それは、コンパイラが実行方法を知らないいくつかの高次型分析を必要とします。計算できる必要があります。私にとって合理的な回避策のようです。インデックスを作成するとき。