typescript - Como importar um Enum




(3)

Eu criei um enum, mas estou tendo problemas para importar e usar o enum no VS15.

Este é o enum que está contido em enums.ts:

enum EntityStatus {
     New = 0,
     Active = 1,
     Archived = 2,
     Trashed = 3,
     Deleted = 4
}

O Visual Studio vê esse enum sem mesmo importar e, portanto, não fornece um erro de tempo de compilação. Mas em tempo de execução, um erro é lançado

 Cannot read property 'Archived' of undefined.

Então agora eu tento importá-lo como importo outras classes:

 import {EntityStatus} from "../../core/enums";

O Visual Studio agora fornece um erro de tempo de compilação:

 "...enums is not a module ..."

Então, como eu importo o enum?


Apenas corri através de algo similar. No meu caso, eu tinha que garantir que o nome da enum exportada fosse diferente do nome do arquivo.

ie.

exportar enum AccessMode no arquivo access-mode.ts falharia. exportar enum AccessMode no arquivo access-modes.ts iria funcionar.


Eu estava faltando a palavra-chave de exportação:

 export enum EntityStatus {
      New = 0,
      Active = 1,
      Archived = 2,
      Trashed = 3,
      Deleted = 4
 }

Então funcionou como esperado.


Você obterá o mesmo Cannot read property 'Foo' of undefined. erro de tempo de execução quando você define seu Enum em um dos arquivos de Declaração do TypeScript ( *.d.ts ), pois esses arquivos não são transmitidos para o JavaScript.

Mais detalhes com um aplicativo de amostra podem ser encontrados here .