Javascript 如何创建可选接口?

Javascript 如何创建可选接口?,javascript,typescript,types,Javascript,Typescript,Types,我有这个案子: interface IRenderComponent { urlToHideAt?: string; links?: IInternalNavbarLink[]; currentLink?: IInternalNavbarLink; } const renderComponent = ({ urlToHideAt, links, currentLink }: IRenderComponent) => { 这有点道理。我将所有子项都设置为可选,但这样做时,每次尝

我有这个案子:

interface IRenderComponent {
  urlToHideAt?: string;
  links?: IInternalNavbarLink[];
  currentLink?: IInternalNavbarLink;
}
const renderComponent = ({ urlToHideAt, links, currentLink }: IRenderComponent) => {
这有点道理。我将所有子项都设置为可选,但这样做时,每次尝试使用该函数时都会出现错误

应为1个参数,但得到0.ts(2554)

这是有道理的。我将道具设置为可选,而不是一个参数

那么,我的问题是如何将整个参数
{urlToHideAt,links,currentLink}
设置为可选参数。如何实现这一点?

您可以使用:


如果调用者没有传递第一个参数,它将默认为
{}
,这是一个有效的
IRenderComponent
,并且
urlToHideAt
链接
当前链接
都将是
未定义的。(
{}.links==undefined

您不能将接口设置为可选的,但可以为ˋrenderComponentˋ的第一个参数设置默认值,使其成为可选的:

const renderComponent = ({ urlToHideAt, links, currentLink }: IRenderComponent = {}) => {
    // Do something
}
const renderComponent = ({ urlToHideAt, links, currentLink }: IRenderComponent = {}) => {
    // Do something
}