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

Siv*_*thi 12 typescript angular

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

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

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

提前致谢.

Sak*_*uto 16

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


Ram*_*ran 7

  • 您的代码是nullable变量声明

但是?:使用的符号来自 Elvis operator

它的代码看起来像

let displayName = user.name ?: "";
Run Code Online (Sandbox Code Playgroud)

而且在typescript / javascript / angular中不可用,与||基本上相同

更多详细信息:三元运算符,猫王运算符,安全导航运算符和逻辑或运算符的比较


小智 7

您可以使用 ??操作员!

const test: string = null;

console.log(test ?? 'none');
Run Code Online (Sandbox Code Playgroud)

这将打印“无”,因为测试为空。如果有测试值,它会打印出来。你可以在这里试试操场打字稿