change typescript

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