网站搜索

angular - 为什么在变量声明中使用按位或运算符?


我正在学习 Angular 并阅读文档,但我不明白为什么在下面的 product 变量声明中使用了按位或运算符。product: Product | undefined 这一行是什么意思?

export class ProductDetailsComponent implements OnInit {

  product: Product | undefined;
  /* ... */
}

答案#1

在那种情况下,它不是 OR 运算符,而是“联合类型”。

在 TypeScript 中,联合类型变量是可以存储多种类型值(例如数字、字符串等)的变量。

联合类型允许我们定义具有多种类型的变量。联合类型变量使用类型之间的管道符('|')来定义。

来源:https://howtodoinjava.com/typescript/union-types/

所以这意味着该产品必须是 Product 类型或 undefined。(只有当你启用 strictNullChecks 时,undefined 部分才相关)。

另一种写法是

product?: Product;

问号表示它是一个可选参数。