일부 typescript 코드를 탐색하는 동안 @ng-bootstrap
pipe ( |
) 연산자를 찾았습니다 .
export declare const NGB_PRECOMPILE: (typeof NgbAlert | typeof NgbTooltipWindow)[];
|
typescript에서 pipe ( ) 연산자 의 사용은 무엇입니까 ?
답변
이를 타이프 스크립트에서 공용체 유형 이라고 합니다.
공용체 유형은 여러 유형 중 하나 일 수있는 값을 설명합니다.
파이프 ( |
)는 각 유형을 구분하는 데 사용되므로 예를 들어 , a 또는 a number | string | boolean
가 될 수있는 값의 유형입니다 .number
string
boolean
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
x
Test1
또는의 생성자를 포함하는 배열 Test2
입니다.
답변
파이프는 ‘또는’을 나타냅니다. 따라서이 컨텍스트에서 선언 된 유형 중 하나가 허용된다고 말합니다. 기본 유형이있는 공용체를 이해하는 것은 쉽습니다.
let x: (string | number);
x = 1; //ok
x = 'myString'; //ok
x = true; //compilation error for a boolean