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