Что означает труба (|) в typescript?

При просмотре кода typescript @ng-bootstrap я нашел оператора pipe (|).

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

Каково использование оператора pipe (|) в typescript?

Ответы

Ответ 1

Это называется объединением типа в машинописи.

Тип объединения описывает значение, которое может быть одним из нескольких типов.

Посмотрите на этот пример:

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

Труба представляет собой "или". Таким образом, в этом контексте говорится, что любой из объявленных типов разрешен. Возможно, легко понять союз с примитивными типами:

let x: (string | number);

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