# E0251: enum value must be a compile-time constant

In TypeScript, normal enums can contain computed values. However, enums declared with `const enum`, `declare enum`, or `declare const enum` must only contain compile-time constants. It is an error to write a non-constant value in an enum which requires constant values:

    declare enum LogLevel {
      ERROR = 1,
      INFO = 2,
      DEBUG = 3,
      DEFAULT = getDefaultLogLevel(),
    }

To fix this error, convert the enum member into a variable:

    declare enum LogLevel {
      ERROR = 1,
      INFO = 2,
      DEBUG = 3,
    }
    const DEFAULT_LOG_LEVEL: LogLevel
      = getDefaultLogLevel();

Alternatively, use a normal enum:

    enum LogLevel {
      ERROR = 1,
      INFO = 2,
      DEBUG = 3,
      DEFAULT = getDefaultLogLevel(),
    }

Introduced in quick-lint-js version 2.7.0.

Documentation for other errors