我如何检查是否提供了可选参数?
给定一个带可选参数的函数:
function DoSomething(a, b?) {
/** Implementation */
}
我如何确定是否从函数体内提供了一个可选参数? 目前,我能想到的最好的方法是:
typeof b === 'undefined'
但是这是一种混乱,不能直接阅读。 由于TypeScript提供了可选的参数支持,我希望它也有一个直观的方法来检查是否提供了参数。
如上例所示,我不介意可选参数是否显式设置为undefined
或根本不提供。
Google搜索“未定义的打印稿”后,我在结果的顶部看到了这个问题,但Evan Trimboli给出的答案并未解决我的问题。
这是最终解决了我的问题的答案。 下面的代码就是我所解决的。 它应该在值等于null
或undefined
情况下工作:
function DoSomething(a, b?) {
if (b == null) doSomething();
}
TypeScript的util
模块具有isUndefined()
函数。 你可以像这样使用它。
import {isUndefined} from "util";
class A {
test(b?: string): string {
if (isUndefined(b)) {
return "UNDEFINED";
} else {
return ("DEFINED" + b);
}
}
}
你可以简单地添加一个可选参数,并使用默认值
function DoSomething(a, b: boolean=null) {
if(b == null)
{
//parameter was not set
}
else
{
//parameter is true or false...no other option available
}
}
链接地址: http://www.djcxy.com/p/76357.html
上一篇: How can I check whether an optional parameter was provided?
下一篇: How to check empty object in angular 2 template using *ngIf