[typescript] typescript에서 pipe (|)는 무엇을 의미합니까?

일부 typescript 코드를 탐색하는 동안 @ng-bootstrappipe ( |) 연산자를 찾았습니다 .

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

|typescript에서 pipe ( ) 연산자 의 사용은 무엇입니까 ?



답변

이를 타이프 스크립트에서 공용체 유형 이라고 합니다.

공용체 유형은 여러 유형 중 하나 일 수있는 값을 설명합니다.

파이프 ( |)는 각 유형을 구분하는 데 사용되므로 예를 들어 , a 또는 a number | string | boolean가 될 수있는 값의 유형입니다 .numberstringboolean

let something: number | string | boolean;

something = 1; // ok
something = '1'; // ok
something = true; // ok
something = {}; // Error: Type '{}' is not assignable to type 'string | number | boolean'

운동장


다음은 질문에있는 것과 유사한 예입니다.

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

xTest1 또는의 생성자를 포함하는 배열 Test2입니다.


답변

파이프는 ‘또는’을 나타냅니다. 따라서이 컨텍스트에서 선언 된 유형 중 하나가 허용된다고 말합니다. 기본 유형이있는 공용체를 이해하는 것은 쉽습니다.

let x: (string | number);

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


답변