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

时间:2017-04-12 11:05:36

标签: angular typescript

我是角度2和打字稿的新手。 我正在看

 export interface EjectTaskOptions extends BuildOptions {
  force?: boolean;
  app?: string;
}

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

提前致谢。

4 个答案:

答案 0 :(得分:16)

?运算符表示该属性可以是nullable /可选。它只是意味着如果您未在实现中实现此属性,编译器将不会抛出错误。

答案 1 :(得分:4)

  • 您的代码为nullable变量声明

但使用?:

Elvis operator符号

It Code看起来像

let displayName = user.name ?: "";
  

它在typescript / javascript / angular中不可用,与||

基本相同

更多详情:Comparison of Ternary operator, Elvis operator, safe Navigation Operator and logical OR operators

答案 2 :(得分:3)

您可以使用??运算符!

const test: string = null;

console.log(test ?? 'none');

这将打印“ none”,因为test为null。如果有测试值,它将打印该值。您可以在这里playground typescript

尝试

答案 3 :(得分:1)

Elvis运营商仅适用于。不适用于[]。

之类的其他解除引用运算符

作为解决方法使用

config: './config.js'