Здесь вы можете найти этот код:
enum NodeFlags {
None = 0,
Let = 1,
Const = 2,
NestedNamespace = 4,
Synthesized = 8,
Namespace = 16,
ExportContext = 32,
ContainsThis = 64,
И такие числовые константы я видел и в других местах.Какова цель этого?
Я предположил, что это сделано для того, чтобы добавить некоторые новые предметы позже где-нибудь между существующими.Особенно после просмотра этого:
ThisNodeHasError = 32768,
JavaScriptFile = 65536,
ThisNodeOrAnySubNodesHasError = 131072,
HasAggregatedChildData = 262144,
JSDoc = 1048576,
BlockScoped = 3, // three?
Но не проще ли в этом случае иметь такие числа, как 100, 200, 300 и т. Д.с побитовыми операциями, но я совсем не уверен после того, как увидел 3
.
FWIW, список заканчивается совершенно странно:
ReachabilityCheckFlags = 384,
ReachabilityAndEmitFlags = 1408,
ContextFlags = 6387712,
TypeExcludesFlags = 20480,
PS Возможно, экспоненциальный здесь не верен (так что извините и вы можете поправить меня).