背景
我正在创建一个处理dom操作的函数,比如创建一个元素,在元素上添加/设置一些属性,以及将其附加到父元素。我想使用命名参数,但是通过研究我发现JS中没有内置这个特性。这个stack overflow question帮助我用parameter destructuring "模拟"命名参数,并且我能够成功地让它工作:
const createElement = function createNewDomElement({
parent,
tag,
idName,
className,
innerHTML,
href
}={}) {
if (parent) {
console.log(parent); // Works
}
}
visual studio代码提供了一个提示,告诉我哪些参数是可用的:
问题和尝试的解决方案
由于这些参数中的一些是必需的,而其余的是可选的,我希望将可选参数分离到函数参数对象中的一个单独的对象中,而不会丢失显示哪些参数可用的Visual Studio提示。
const createElement = function createNewDomElement({
tag,
options: {
parent,
idName,
className,
innerHTML,
href
}
}={}) {
if (options) {
options.forEach(item => console.log(item));
}
}
但是,当我尝试以与第一个示例中访问父参数相同的方式访问选项时,它显示未定义。
问题
是否有一种方法可以嵌套模拟的命名参数,同时保持显示哪些参数可用的Visual Studio代码提示?
我也愿意接受有效的解决方案,但我失去了暗示。
1条答案
按热度按时间6vl6ewon1#
您将无法迭代这些属性,但可以通过这种方式访问它