我如何检查是否提供了可选参数?

给定一个带可选参数的函数:

function DoSomething(a, b?) {
    /** Implementation */
}

我如何确定是否从函数体内提供了一个可选参数? 目前,我能想到的最好的方法是:

typeof b === 'undefined'

但是这是一种混乱,不能直接阅读。 由于TypeScript提供了可选的参数支持,我希望它也有一个直观的方法来检查是否提供了参数。

如上例所示,我不介意可选参数是否显式设置为undefined或根本不提供。


Google搜索“未定义的打印稿”后,我在结果的顶部看到了这个问题,但Evan Trimboli给出的答案并未解决我的问题。

这是最终解决了我的问题的答案。 下面的代码就是我所解决的。 它应该在值等于nullundefined情况下工作:

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