我将通过例子解释:
猫王运营商(?:)
"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) 打字稿中是否有任何运算符使用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) 我是角度2和打字稿的新手.我看到了
export interface EjectTaskOptions extends BuildOptions {
force?: boolean;
app?: string;
}
Run Code Online (Sandbox Code Playgroud)
在一些打字稿中的例子.它是什么?:意思?它是三元运算符(仅具有错误条件)还是其他运算符?
提前致谢.