我有以下代码:
module array {
export function contains(arr: Array, item: any): bool { // implementation }
}
我希望能够拥有的是联合类型(在上面的示例中 Array、NodeList 和 IArguments 应该是可能的)或导出函数的多个签名。我似乎也做不到。
我尝试使用不同类型的参数多次声明该函数,但编译器抱怨缺少 return 语句 - 没有必要证明仅用于参数类型检查的声明的实现(并使代码冗长)。我认为拥有联合类型会更好,不是吗?
所以问题是:我如何实现类型检查允许的参数是不同类型的函数(在这种情况下 - 类似对象的数组),但实现是相同的,而无需复制/粘贴实现(基本上是一个简单的'return false' 可能会在最后一个声明之前的声明中使用,但似乎仍然是个坏主意)。