Typescript无法检测相交函数中的参数类型
我有一个变量,可以是集合或映射。函数的第一个参数在Typescript无法检测相交函数中的参数类型,typescript,Typescript,我有一个变量,可以是集合或映射。函数的第一个参数在forEach中是相同的,但是TypeScript返回到any 声明let setOrMap:Map | Set; setOrMap.forEach((myBool)=>{ //myBool是任何8-/ }); 签名如下: (方法)forEach(callbackfn:((值:布尔,键:字符串,映射:映射)=>void)和((值:布尔,值2:布尔,集:集)=>void),thisArg:any):void 这是一个已知的错误/缺少的功能(在ts
forEach
中是相同的,但是TypeScript返回到any
声明let setOrMap:Map | Set;
setOrMap.forEach((myBool)=>{
//myBool是任何8-/
});
签名如下:
(方法)forEach(callbackfn:((值:布尔,键:字符串,映射:映射)=>void)和((值:布尔,值2:布尔,集:集)=>void),thisArg:any):void
这是一个已知的错误/缺少的功能(在ts github repo中没有找到匹配的问题)还是我遗漏了什么?可能是上下文类型的限制。我认为,如果我们处理的是重载签名,那么上下文类型根本不适用于参数(这就是交集真正的工作原理,重载签名)您可以手动将该类型添加到
myBool
中,如果使用noImplicitAny
ts,则如果隐式推断出任何
,则会引发错误