我是Typescript的新手,以下代码有问题。
foo(values: string[] | number[]) {
const mappedValues = values.map((value) => {
return (typeof value === 'number')
? value
: `'${value}'`;
});
}
打字稿抛出错误
Cannot invoke an expression whose type lacks a call signature. Type '(<U>(callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[]) | (<U>(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[])' has no compatible call signatures.
我尝试修复它,但没有成功。我该如何运作?
答案 0 :(得分:1)
由于foo有两个调用签名(string []和int []),因此无法确定类型映射是否可用,尽管在本示例中foo可以解决它
foo(values: Array<string | number>) {
const mappedValues = values.map((value) => {
return (typeof value === 'number')
? value
: `'${value}'`;
});
}