相关疑难解决方法(0)

javascript中是否存在null-coalescing(Elvis)运算符或安全导航运算符?

我将通过例子解释:

猫王运营商(?:)

"Elvis运算符"是Java三元运算符的缩写.这方面的一个实例是,如果表达式解析为false或null,则返回"合理的默认值".一个简单的例子可能如下所示:

def gender = user.male ? "male" : "female"  //traditional ternary operator usage

def displayName = user.name ?: "Anonymous"  //more compact Elvis operator
Run Code Online (Sandbox Code Playgroud)

安全导航操作员(?.)

安全导航操作符用于避免NullPointerException.通常,在引用对象时,可能需要在访问对象的方法或属性之前验证它是否为null.为了避免这种情况,安全导航操作符将只返回null而不是抛出异常,如下所示:

def user = User.find( "admin" )           //this might be null if 'admin' does not exist
def streetName = user?.address?.street    //streetName will be null if user or user.address is null - no NPE thrown
Run Code Online (Sandbox Code Playgroud)

javascript jquery groovy safe-navigation-operator

185
推荐指数
13
解决办法
8万
查看次数

在打字稿中替换Angular2的Elvis算子

打字稿中是否有任何运算符使用Elvis Operator了angular2的similer,我的意思是说让我必须从对象获取密钥,如下所示:

this.myForm.name.first_name
Run Code Online (Sandbox Code Playgroud)

如果first_name不存在,那么它会抛出错误first_name of undefined,

是的,我可以使用这样Ternary operator的打字稿来解决这个错误

this.myForm.name ? this.myForm.name.first_name : ''
Run Code Online (Sandbox Code Playgroud)

但有时钥匙太长了,

所以Elvis Operator在打字稿中有任何类似angular2的操作符,这样我就可以这样使用了

this.myForm?.name?.first_name
Run Code Online (Sandbox Code Playgroud)

javascript typescript angular

32
推荐指数
2
解决办法
2万
查看次数

是(`?:`)打字稿三元运算符

我是角度2和打字稿的新手.我看到了

 export interface EjectTaskOptions extends BuildOptions {
  force?: boolean;
  app?: string;
}
Run Code Online (Sandbox Code Playgroud)

在一些打字稿中的例子.它是什么?:意思?它是三元运算符(仅具有错误条件)还是其他运算符?

提前致谢.

typescript angular

12
推荐指数
3
解决办法
2万
查看次数