Что означает труба (|) в 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