在Typescript中,这个片段:
[].map(JSON.stringify);
产生此错误:
类型'{(value:any,replacer?:((key:string,value:any)=> any)的参数| undefined,space?:string | number | undefined):string; (值:any,replacer?:( string | number)[] | null | undefined,space?:string | ... 1 more ... | undefined):string; }'不能赋值给''参数'(值:从不,索引:数字,数组:从不[])=>字符串' . 参数“replacer”和“index”的类型不兼容 . 类型'number'不能分配给'((key:string,value:any)=> any)|未定义” .
我不认为应该这样做 .
对我来说,这看起来像一个Typescript错误,但在我在GitHub中提出问题之前,你可以检查我是否做错了什么?
打字稿版本: 3.0.3
2 回答
由于第二个参数,
JSON.stringify
和Array.map
的签名不兼容:在这里你可以看到
stringify
与callbackfn
不匹配,因为第二个参数不匹配 .但你绝对可以
[].map(i => JSON.stringify(i))
那个's not a bug, it'清楚地告诉你
JSON.stringify
的第二个参数的类型(它是替换函数)与map函数的number
(它是索引)类型的预期第二个参数不匹配 .