私は次のコードを持っています:
module array {
export function contains(arr: Array, item: any): bool { // implementation }
}
私が持つことができるようにしたいのは、共用体型(上記の例では、Array、NodeList、およびIArgumentsが可能であるはずです)またはエクスポートされた関数の複数の署名のいずれかです。私もできないようです。
引数の型を変えて関数を複数回宣言しようとしましたが、コンパイラはreturnステートメントがないことを訴えます-引数の型チェックにのみ使用される宣言の実装を証明する意味はありません(そしてコードを冗長にします)。共用体タイプを使用する方がはるかに良いと思いますね。
したがって、問題は次のとおりです。許可された引数が異なる型(この場合は-オブジェクトのような配列)であるが、実装は同じであり、実装をコピー/貼り付けする必要がない場合(基本的に単純な)、関数の型チェックをどのように達成しますか? 'return false'は、おそらく最後の宣言の前の宣言で実行されますが、それでも悪い考えのようです)。