繁体   English   中英

如何在Typescript中定义带有可选参数的function类型?

[英]How to define function type with optional parameter in Typescript?

我有一个 function,带有我传递给另一个组件的可选参数。

update = (flag: boolean = true): void => {
  // ...
}

在我将其传递给的组件中,我有一个名为updateFunc的字段,我想将其分配给这个 function。该字段的类型应该是什么?

我试过的

如果我像下面这样定义字段,我就不能用参数调用它。

updateFunc: () => void;

如果我像下面这样定义字段,我就不能在没有参数的情况下调用它。

updateFunc: (flag: boolean) => void;

如果我像下面这样定义字段,我就失去了类型安全。

updateFunc: any;

你可以这样定义:

updateFunc: (flag?: boolean) => void;

那么当执行引用的 function ( update ) 时,默认值将分配给flag参数。

您可以使用问号。

function hello(name?: string): void {
    if (name) {
        console.log(`Hi ${name}!`);
    } else {
        console.log(`I don't know your name :(`);
    }
}

hello('M. Azyoksul'); // Hi M. Azyoksul!
hello(); // I don't know your name :(

如果需要默认值,可以使用赋值

function hello(name: string = 'masked man'): void {
    if (name) {
        console.log(`Hi ${name}!`);
    } else {
        console.log(`I don't know your name :(`);
    }
}

hello('M. Azyoksul'); // Hi M. Azyoksul!
hello(); // Hi masked man!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM