Uczę się TypeScript, używając jako odnośnika this ebook. Sprawdziłem numer TypeScript Official Documentation, ale nie znajduję informacji o flagach wyliczeniowych.Co to są flagi wyliczające w TypeScript?
Odpowiedz
Są sposobem na wydajne przechowywanie i reprezentowanie zbioru wartości logicznych.
Na przykład, przy tej flagi ENUM:
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
}
Zamiast tylko jest w stanie reprezentować pojedynczą wartość tak:
let traits = Traits.Mean;
Możemy reprezentować wielu wartości w jednej zmiennej:
let traits = Traits.Mean | Traits.Funny; // (0010 | 0100) === 0110
Następnie przetestuj je indywidualnie:
if (traits & Traits.Mean) {
console.log(":(");
}
'let traits = Traits.Mean | Traits.Funny' teraz zmienna 'traits' będzie miała wiele wartości, jak wykonać odwrotność? Będę miał '6' jak przekonwertować na' Traits.Mean | Traits.Funny'? – Sreekumar
Flagi pozwalają sprawdzić, czy określony warunek z zestawu warunków jest prawdziwy. Jest to wspólny wzorzec programowania w różnych innych językach programowania, np. tutaj jest przykład o C#: Using Bitwise operators on flags
Ale pytanie dotyczyło formatu TypeScript, a zwłaszcza używania flag w kontekście enum. –
- 1. Czy flagi wyliczające C# muszą być sekwencyjne
- 2. Co to jest plik mapy TypeScript?
- 3. Co to są `+:` i `-:`?
- 4. Co to są fortuny?
- 5. Co to są pojęcia?
- 6. Co to są CoreDataGeneratedAccessors?
- 7. Co to są RFC?
- 8. Co to jest odpowiednik dyrektywy, kompilować (pre/post) w TypeScript?
- 9. Co to są pliki FTL
- 10. Co to są opcje + FollowSymLinks?
- 11. Co to są czyste zmienne?
- 12. Co to są moduły CSS3?
- 13. Co to są połączenia ZygoteInit?
- 14. Co to są operatorzy zniesione?
- 15. Co to są hipotetyczne indeksy?
- 16. Co to są ograniczone szablony?
- 17. Co to są "pilne dane"?
- 18. Co to są Iteratory SCARY?
- 19. Co to są błędy xsession?
- 20. Co to są opcje skrótów?
- 21. Co to są pojemniki w Javie
- 22. Co to są klasy encji w php
- 23. Co to są pliki `rc` w nodejs?
- 24. Co to są instrukcje "jest" w D?
- 25. Co to są dostawcy w Angular2?
- 26. Co to są CocoaPods w systemie iOS?
- 27. Co to są sekcje krytyczne w wątkach
- 28. Co to są generics w C#?
- 29. Co to są "wymiary syntetyczne" w Blaze?
- 30. Co to są "właściwości" w Groovy?
Przykład "FileAccess" podany w dokumencie, do którego się odwołujesz. Sama strona w ebooku, do którego się odwołujesz, zawiera sekcję o nazwie "enums as flags", która opisuje to, czego szukasz, w jeszcze większej liczbie szczegółów niż poniższa odpowiedź, w tym sposób dodawania flag za pomocą '| =' itd. –