![](/img/trans.png)
[英]How to define in TypeScript output type which depends on optional parameter
[英]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.