TypeScript Enum Flags (bitmask)

Объявление

enum FileAccess {
    None,             // 000
    Read    = 1 << 1, // 001
    Write   = 1 << 2, // 010
    Execute = 1 << 3, // 100
    ReadWrite  = Read | Write, // 011
}

Использование

let f = FileAccess.Read;

// добавить флаг
f |= FileAccess.Execute; // === ReadExecute

// проверить наличие
f & FileAccess.Execute // true

// убрать флаг
f &= ~FileAccess.Read; // === Execute

Используется в недрах Angular для NodeFlags так как позволяет сделать наиболее быстрые проверки.


Похожие записи

TS. Event bus

Создаётся providedIn: 'root' сервис событий. Затем отправляются события на шину, и если какой-либо слушатель подписан на эти события, он получает уведомления.