2016-09-07 2 views
7

this ebook을 참조로 TypeScript를 배우고 있습니다. TypeScript Official Documentation을 확인했지만 열거 형 플래그에 대한 정보를 찾지 못했습니다.TypeScript의 열거 형 플래그 란 무엇입니까?

+1

참조하는 문서에있는 'FileAccess' 예제가 이에 대한 예입니다. 참조하는 전자 책의 맨 페이지에는 "enums as flags"라는 섹션이 있는데, 찾고자하는 것을 설명하는 섹션은'| ='등을 사용하여 플래그를 추가하는 방법을 포함하여 아래 답변보다 훨씬 자세합니다. –

답변

20

이들은 불리언 값 모음을 효율적으로 저장하고 표현할 수있는 방법입니다. 우리는 하나의 변수에 여러 값을 나타낼 수

let traits = Traits.Mean; 

: 만과 같이 하나의 값을 표시 할 수있는의 대신

enum Traits { 
    None = 0, 
    Friendly = 1 << 0, // 0001 -- the bitshift is unnecessary, but done for consistency 
    Mean = 1 << 1,  // 0010 
    Funny = 1 << 2, // 0100 
    Boring = 1 << 3, // 1000 
    All = ~(~0 << 4) // 1111 
} 

:이 플래그 열거 형을 복용 예를 들어

,

let traits = Traits.Mean | Traits.Funny; // (0010 | 0100) === 0110 

그런 다음 개별적으로 테스트합니다.

if (traits & Traits.Mean) { 
    console.log(":("); 
} 
+0

'let 특성 = Traits.Mean | Traits.Funny' 이제'traits' 변수는 여러 값을 가질 것이고, 어떻게 그 역을 수행 할 것인가? 나는'Traits.Mean | '으로 변환하는 방법을'6'으로 할 것입니다. 성격. 버니? – Sreekumar

0

플래그를 사용하면 일련의 조건에서 특정 조건이 true인지 확인할 수 있습니다. 이것은 다양한 프로그래밍 언어에서 일반적인 프로그래밍 패턴이다. 다음은 C#에 대한 예제입니다. Using Bitwise operators on flags

+2

하지만 질문은 TypeScript에 관한 것이 었으며 특히 enum 컨텍스트에서 플래그를 사용했습니다. –

관련 문제