我正在尝试使类型与基本合并两个对象的通用数组reduce函数一起使用。以下代码段是实际代码的转储版本。为什么是fl类型{}而不是IFoo & IBar?
(我知道可以通过一个Object.assign()调用轻松替换这个特定示例。)
const flatten = <K, T>(prev: K, x: T): K & T => {
return Object.assign(prev, x);
};
interface IFoo {
foo: true;
}
interface IBar {
bar: true;
}
const fooRes: IFoo = { foo: true };
const barRes: IBar = { bar: true };
const fl = [fooRes, barRes].reduce(flatten, {});
console.log(fl); // here, fl : {}
Run Code Online (Sandbox Code Playgroud) HTML:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="Button">Button
<div class="FadeItem">
<ul>
<li>Main Menu A </li>
<li class="Button">Main Menu B
<div class="FadeItem">
<ul>
<li>Sub Menu B</li>
<li>Sub Menu B</li>
</ul>
</div>
</li>
</ul>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.button{
float: left;
}
.FadeItem{
display: none;
}
Run Code Online (Sandbox Code Playgroud)
jQuery:
$(document).ready(function () {
$(".Button").hover(function(){
$(".FadeItem").fadeToggle(500);
});
});
Run Code Online (Sandbox Code Playgroud)
如您所见,上面的简单代码在某些项目的内容中淡出。问题是当我将光标放在它闪烁的淡入内容上时,但我希望内容不闪烁地显示。
你知道我需要在我的代码中更改什么来取消闪烁吗?