我有一个 getUniqueId 方法,它接受下面两种接口,它将根据传递的接口类型返回 uniqueId:
interface ReadOnlyInfo {
itemId: string;
....
}
interface EditInfo {
formId: number;
....
}
function getUniqueId (info: ReadOnlyInfo | EditInfo) {
if (info instanceof ReadOnlyInfo) {
return info.itemId;
}
return info.formId;
}
Run Code Online (Sandbox Code Playgroud)
我想知道在这里使用 instanceof 是否是一个好习惯。我担心的是,我可能有许多其他类似于 getUniqueId 的方法,它们也接受“ReadOnlyInfo | EditInfo”类型,因此我必须在各处重复“ReadOnlyInfo | EditInfo”。
我没有这样做,而是尝试使用类型:
type CommonInfo = | ReadOnlyInfo | EditInfo;
Run Code Online (Sandbox Code Playgroud)
所以,我可以保存一些代码(只需执行 CommondInfo),如下所示,但是这样,我无法判断 CommonInfo 是什么类型,instanceof 不再起作用并给我编译器错误。
function getUniqueId (info: CommonInfo) {
if (info instanceof ReadOnlyInfo) {
return info.itemId;
}
return info.formId;
}
Run Code Online (Sandbox Code Playgroud)
所以,我想知道在这种情况下设计接口/方法的最佳实践是什么。提前致谢!
我有一些 Javascript 代码,将在组件完成加载时运行:
function HelloThere() {
React.useEffect(() => {
setTimeout(() => {
// code to make a server call to write data to DB
}, 60 * 1000);
}, []);
return <h1>Hello there</h1>;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果 useEffect 中的代码被命中(组件已加载),但用户在 60 秒超时之前关闭选项卡(或刷新浏览器),代码是否仍会在后台运行并将数据写入数据库?谢谢您的帮助!
我正在进行如下所示的ldap搜索,以获取某人的信息,
ldapsearch -LLL -H ldaps://ldap.xyzcorp.com:636 -D'xyzcorp \ jack1'-W -x -b'dc = xyzcorp,dc = com'sn = Ready
“ sn”名称“ Ready”是此人的姓氏,但它返回多个具有相同姓氏“ Ready”的结果,因此我想添加多个过滤器来搜索姓氏和名字,如下所示:
ldapsearch -LLL -H ldaps://ldap.xyzcorp.com:636 -D'xyzcorp \ jack1'-W -x -b'dc = xyzcorp,dc = com'sn = Ready AND namedName = Bill
但是返回的结果仍然包含姓氏为“ Ready”的多个人。我不确定哪一部分不正确。
您能帮我这个命令吗?
我有一个div A,其中包含div B,其中包含div C,其中包含div D,其中div A的默认高度为40px。就像下面这样。
<div id='A' style="height: 40px">
<div id='B'>
<div id='C'>
<div id='D'></div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
问题是,div C 的实现方式是可以动态改变高度。因此,它可能会超过 div A 的默认高度 (40px) 并导致一些外观问题。
我想要实现的是将div A的高度保持为40px,只要其任何子div的高度不超过40px。但是,如果其任何子 div 的高度超过 40px,我希望子 div 的高度覆盖div A 的高度。例如,当div C将高度更改为80px时,我希望div A的高度为80px。
我想知道是否需要编写一个方法来动态计算每个子 div 的高度,并执行类似getElementById('A').style.height = null返回的子高度大于 40px 之类的操作。
有更好或更简单的方法吗?
javascript ×3
css ×1
html ×1
interface ×1
jquery ×1
ldap ×1
ldap-query ×1
linux ×1
reactjs ×1
typescript ×1