typescript - change - ¿Qué significa la tubería(|) en mecanografiado?
meta tags angular 4 (2)
Mientras exploraba un código mecanografiado de @ng-bootstrap
, encontré el operador pipe ( |
).
export declare const NGB_PRECOMPILE: (typeof NgbAlert | typeof NgbTooltipWindow)[];
¿Cuál es el uso del operador pipe ( |
) en mecanografiado?
En JavaScript el operador de tubería representa ''o''. Entonces, en este contexto, representa cualquiera de los tipos declarados permitidos. Quizás es fácil entender una unión con tipos primitivos:
let x: (string | number);
x = 1; //ok
x = ''myString''; //ok
x = true; //compilation error for a boolean
Esto se llama tipo de unión en mecanografiado.
Un tipo de unión describe un valor que puede ser uno de varios tipos.
Echa un vistazo a este ejemplo:
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