管道(|)在打字稿中的含义是什么?

时间:2016-07-28 05:56:21

标签: typescript

在浏览@ng-bootstrap的一些打字稿代码时,我找到了管道(|)运算符。

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

在打字稿中使用pipe(|)运算符有什么用?

2 个答案:

答案 0 :(得分:52)

这在typescript中称为union type

  

联合类型描述的值可以是多种类型之一。

看一下这个例子:

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

答案 1 :(得分:7)

管道代表'或'。所以在这种情况下,它表示允许任何一种声明的类型。也许很容易理解与原始类型的联合:

let x: (string | number);

x = 1; //ok
x = 'myString'; //ok
x = true; //compilation error for a boolean