What does the pipe(|) mean in typescript?

匿名 (未验证) 提交于 2019-12-03 01:25:01

问题:

While browsing some typescript code of @ng-bootstrap I have found pipe(|) operator.

export declare const NGB_PRECOMPILE: (typeof NgbAlert | typeof NgbTooltipWindow)[];

What is the use of pipe(|) operator in typescript?

回答1:

This is called union type in typescript.

A union type describes a value that can be one of several types.

Have a look at this example:

class Test1{     public a:string } class Test2{     public b:string } class Test3{  }  let x: (typeof Test1 | typeof Test2)[];  x = [Test1]; //ok x = [Test1, Test2]; //ok x = [Test3]; //compilation error


回答2:

In JavaScript the pipe operator represents 'or'. So in this context it represents either of the declared types being allowed. Perhaps it is easy to understand a union with primitive types:

let x: (string | number);  x = 1; //ok x = 'myString'; //ok x = true; //compilation error for a boolean


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!