给定具有可选参数的函数:
function DoSomething(a, b?) {
/** Implementation */
}
Run Code Online (Sandbox Code Playgroud)
如何确定是否在函数体内提供了可选参数?目前,我能想到的最好的方法是:
typeof b === 'undefined'
Run Code Online (Sandbox Code Playgroud)
但这有点混乱而且不直接阅读.由于TypeScript提供了可选参数支持,我希望它还有一种直观的方法来检查是否提供了参数.
如上例所示,我不介意是否将可选参数显式设置为undefined
或者根本不提供.
Tod*_*all 39
在谷歌搜索"typescript check for undefined"之后,我在结果的顶部看到了这个问题,但是Evan Trimboli给出的答案并没有解决我的问题.
这是最终解决了我的问题的答案.以下代码是我所确定的.它应该适用于值等于null
或的情况undefined
:
function DoSomething(a, b?) {
if (b == null) doSomething();
}
Run Code Online (Sandbox Code Playgroud)
Eva*_*oli 14
您可以检查该值以查看它是否未定义:
var fn = function(a) {
console.log(a === undefined);
};
fn(); // true
fn(undefined); // true
fn(null); // false
fn('foo'); // false
Run Code Online (Sandbox Code Playgroud)
Vla*_*kov 11
TypeScript的util
模块具有功能isUndefined()
.你可以像这样使用它.
import {isUndefined} from "util";
class A {
test(b?: string): string {
if (isUndefined(b)) {
return "UNDEFINED";
} else {
return ("DEFINED" + b);
}
}
}
Run Code Online (Sandbox Code Playgroud)
你可以简单地添加一个带有默认值的可选参数
function DoSomething(a, b: boolean=null) {
if(b == null)
{
//parameter was not set
}
else
{
//parameter is true or false...no other option available
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
46852 次 |
最近记录: |