Búsqueda de sitios web

Sin error en valor fuera del enum de TypeScript


Esperaba que esto pudiera producir un error en tiempo de compilación, pero supongo que simplemente he entendido mal cómo funcionan los enums...

enum SortDirection {
    ascending = 1,
    descending = -1
}
type IndexSpec = {[index: string]: SortDirection};

var i: IndexSpec = {thing: 3};  // no compile time error

Respuesta #1

Todos los valores numéricos se consideran valores de enumeración de valor.

Esto está permitido porque no hay distinción entre enumeraciones con bandera y sin bandera:

enum MyFlags {
  Cool = 0x1,
  Awesome = 0x2,
  Neat = 0x4
}

var i: MyFlags = 5; // Cool | Neat

Artículos relacionados