我想通过使用Union Type在Typescript中调用一个包含两种不同类型数组的数组排序函数。函数调用适用于单独的类型,但不适用于Union Type?
this.shuffle(stringArray); // array of strings
this.shuffle(StudentArray); // array of student objects
// this works
shuffle(arr:Student[]) {
arr.sort(() => (Math.random() - 0.5))
}
// this works
shuffle(arr:string[]) {
arr.sort(() => (Math.random() - 0.5))
}
// this gives an error
shuffle(arr:Student[] | string[]) {
arr.sort(() => (Math.random() - 0.5))
}
错误
Cannot invoke an expression whose type lacks a call signature.
答案 0 :(得分:2)
将arr:Student[] | string[]
更改为(Student | string)[]