打字稿中的可选对象参数

Laz*_*zyk 6 typescript

我正在创建一个带有对象参数的简单函数。它接受openDialog决定是否运行另一个函数的布尔属性。我没有为它定义一个接口,因为它永远是一个单一的属性。我的问题是如何定义它,以便我不再需要将空对象传递给该函数?openDialog是可选的,那么使该对象也可选的正确语法是什么?

function renderComponent({ openDialog }: { openDialog?: boolean }) {
  render(
    <Component />
  );

  if (openDialog) clickButton('Import Existing');
}
Run Code Online (Sandbox Code Playgroud)

renderComponent()Typescript抱怨

预期有 1 个参数,但得到 0 个。

它接受renderComponent({})

我知道有一个默认参数function renderComponent({ openDialog }: { openDialog?: boolean } = {}) {,但我想知道是否有不同的方法。

小智 6

也许这就是您想要实现的目标。

function renderComponent(openDialog? : { openDialog?: boolean }) {
    render(
        <Component />
    );

    if (openDialog) clickButton('Import Existing');
}
Run Code Online (Sandbox Code Playgroud)